XingYun blog
  • JS基础

    • 图解js原型链
    • JS Event Loop
    • 对象的底层数据结构
    • 让你的JavaScript代码简单又高效
    • 函数参数按值传递
    • 判断数据类型
    • 浮点数精度问题和解决办法
    • 常用方法snippet
    • 实现Promise
    • 防抖和节流
    • 巧用sort排序
  • CSS && HTML

    • CSS也需要性能优化
    • class命名规范
    • em、px、rem、vh、vw 区别
    • CSS揭秘阅读笔记
  • 浏览器

    • 浏览器是如何渲染页面的
    • 重排和重绘
    • BOM浏览器对象模型
    • DOM事件
    • 浏览器存储
  • 数据结构

    • JS实现链表
    • JS实现栈与栈应用
    • JS实现常见排序
    • 哈夫曼编码
    • MD5算法
  • vue原理浅析

    • Vue虚拟dom与Diff算法
    • 前端打包文件的缓存机制
    • vue数组为什么不是响应式
    • v-for为什么不能用index做key
  • 前端工程化

    • 浏览器是如何渲染页面的
    • 前端打包需要gzip压缩吗
    • 前端打包文件的缓存机制
    • webpack loader和plugin
  • 轮子&&组件库

    • 实现水波浪进度球
  • 文字转语音mp3文件
  • 文件上传前后端实现
  • moment.js给定时间获取自然月、周的时间轴
  • 实现文件上传功能
  • 批量下载照片
  • leaflet改变坐标原点
  • 网络

    • 有了MAC地址 为什么还需要IP地址
    • 为什么IP地址老是变
    • 我们为什么需要IPV6
    • TCP与UDP
  • 计算机组成原理

    • ASCII、Unicode、UTF-8和UTF-16
  • VSCode

    • VSCode图片预览插件 Image preview
    • rsync:linux间的高效传输工具

XingYun

冲!
  • JS基础

    • 图解js原型链
    • JS Event Loop
    • 对象的底层数据结构
    • 让你的JavaScript代码简单又高效
    • 函数参数按值传递
    • 判断数据类型
    • 浮点数精度问题和解决办法
    • 常用方法snippet
    • 实现Promise
    • 防抖和节流
    • 巧用sort排序
  • CSS && HTML

    • CSS也需要性能优化
    • class命名规范
    • em、px、rem、vh、vw 区别
    • CSS揭秘阅读笔记
  • 浏览器

    • 浏览器是如何渲染页面的
    • 重排和重绘
    • BOM浏览器对象模型
    • DOM事件
    • 浏览器存储
  • 数据结构

    • JS实现链表
    • JS实现栈与栈应用
    • JS实现常见排序
    • 哈夫曼编码
    • MD5算法
  • vue原理浅析

    • Vue虚拟dom与Diff算法
    • 前端打包文件的缓存机制
    • vue数组为什么不是响应式
    • v-for为什么不能用index做key
  • 前端工程化

    • 浏览器是如何渲染页面的
    • 前端打包需要gzip压缩吗
    • 前端打包文件的缓存机制
    • webpack loader和plugin
  • 轮子&&组件库

    • 实现水波浪进度球
  • 文字转语音mp3文件
  • 文件上传前后端实现
  • moment.js给定时间获取自然月、周的时间轴
  • 实现文件上传功能
  • 批量下载照片
  • leaflet改变坐标原点
  • 网络

    • 有了MAC地址 为什么还需要IP地址
    • 为什么IP地址老是变
    • 我们为什么需要IPV6
    • TCP与UDP
  • 计算机组成原理

    • ASCII、Unicode、UTF-8和UTF-16
  • VSCode

    • VSCode图片预览插件 Image preview
    • rsync:linux间的高效传输工具
  • VSCode图片预览插件 Image preview
  • Linux服务器
  • 记录git使用
  • mac终端
  • 代理
  • nginx部署网站
  • CDN与对象存储-七牛云
  • rsync:linux间的高效传输工具
  • 正则表达式
  • yarn
  • Alfred
  • npm
  • vim编辑器基础
  • docker部署node服务
  • lux一行命令下载全网视频
  • Chrome-Tips
  • 工具
XingYun
2023-07-20
目录

制作时序图

# 在线绘制时序图

online draw https://www.fly63.com/tool/drawsvg/index.html#
Author https://bramp.github.io/js-sequence-diagrams/

以微信小程序登录流程为例:


小程序->格灵 server: wx.login() \n code + appid
格灵 server -> 微信 server: auth.code2Session 接口 \n appid + secretid + code
微信 server -> 格灵 server: 用户 openid、unionId 等等
Note over 格灵 server: 后端检测用户是否注册过
Note over 格灵 server: 已注册:返回 token
格灵 server-->小程序: token
Note left of 小程序: 存储 token \n 跳转游戏码页面
Note over 格灵 server: 未注册:走注册流程

格灵 server-->小程序: 通知用户为新用户
Note over 小程序: 弹窗申请获取用户手机号 \n wx.getPhoneNumber()
小程序->格灵 server: getPhoneNumber code
格灵 server -> 微信 server: phonenumber.getPhoneNumber 接口 \n access_token + getPhoneNumber code
微信 server -> 格灵 server: 用户手机号、区号等
Note over 格灵 server: 利用手机号等信息注册
格灵 server->小程序: 注册成功: 返回 token + userid
Note left of 小程序: 存储 token
Note over 小程序: 用户填写昵称 头像 性别等信息
小程序 -> 格灵 server: userid + 用户信息
Note over 格灵 server: 更新用户基础信息
格灵 server->小程序: 完成注册
Note left of 小程序:  跳转游戏码页面

Note over 小程序: 登录状态
小程序->格灵 server: 业务接口 \n 请求头携带 token
Note over 格灵 server: token 过期
格灵 server->小程序: 401

Note over 格灵 server: 回到第一步 wx.login()


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

上次更新: 2023/07/15, 08:37:32
最近更新
01
JavaScript-test
07-20
02
二维码的原理
07-20
03
利用ChatGPT优化代码
07-20
更多文章>
Theme by Vdoing | Copyright © 2021-2023 XingYun | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式