微信登录流程笔记
准备工作
- 项目集成 WX 微信SDK
- 配置公众号:公众号 IP 白名单、公众号设置=》JS接口安全域名、网页授权域名
微信获取 OPENID 的三次重定向
- 用户进入项目首页,页面上面判断本地缓存中是否存在 token,不存在则进入登录流程。
- windows.loaction = 登录地址(authorize)+ &当前访问项目的标识 = XXX
- 登录地址(authorize)接收到用户请求
- 根据项目标识,查询对应公众号的配置信息,set 进 wxMpService
- 项目标识、其他参数(如果有需要)存入 redis
- 生成访问微信获取 code 的 url,state 参数的值为 第二步 redis 的 key
- redirect 重定向 url (第一次重定向)
- 微信根据第二步携带的重定向地址,在处理完成后携带 code、state 重定向回我们设置的地址(第二次重定向)
- 验证微信重定向回来时携带的参数并进行相应的处理。
- 验证 code ,并且获取 openid 等信息
- 根据 state 读取 redis 获取我们需要的参数
- 根据 1、2 步的数据、业务逻辑生成 token
- 将 openid、业务逻辑相关的数据保存到 token 中
- 生成重定向回项目的地址,并且在地址上携带 token参数(第三次重定向)
- 用户浏览器上(微信),我们的项目首页检测到链接中携带有 token,将 token 保存到本地缓存。
- 微信获取 OPENID 进行登录的流程执行完毕。
扫一扫,分享到微信
{title}