微信H5的授权登录

微信H5的授权登录

九月 21, 2019

项目开发中有涉及微信H5获取微信用户身份(openid、nickName、headimgurl)等工作,与之前所认识的相当不一样。所以要记一下。

官方文档

官方文档更多的是说实现授权的原理,下面说一下实际的开发里的问题。

开发的时序图先睹为敬

一个正常的流程基本是:

  1. H5向node发起授权请求接口
  2. node根据session id查询Redis是否存在用户数据,有则直接返回
  3. 如果没有。则向java请求授权url,请求带上回调url。
  4. java返回授权url(java与程暂时不清楚如何与微信服务器通信,没涉及到这的开发),node返回授权url给前端。
  5. 前端判断,如果是授权url,则window.location.href = (授权url)。(授权url会带有回调url)
  6. 跳转到微信后,如果是显形授权,则会弹出一个授权弹窗,用户同意后,会回调到授权url后带的重定向url。
  7. 重定向的url是node的接口。回调回来的接口会携带token参数。
  8. node端可以通过token向java端获取用户信息。存入Redis。
  9. 返回用户信息给前端