? ? ? ? ?本人在做项目的过程中,遇到了微信登录的需求。因此我查阅了微信小程序开发文档,了解到小程序是如何实现微信登录。这篇博客记录我对微信登录流程的个人见解,如有错误,请指出。
微信小程序登录官方流程图
?
微信登录的主要步骤
-
前端调用wx.login 获取微信生成的一个有效性凭证,我们把它称为微信登录凭证code,它的有效时间为5分钟。微信登录凭证code 的作用是小程序后端通过 code,可以获取该微信用户的身份。 -
前端再把微信登录凭证code,发送到后端。如果当前用户是首次登录,没有绑定小程序业务身份的话,可以将用户账号密码与code一起发送给后端。 -
后端拿到微信登录凭证code,调用微信提供的https://api.weixin.qq.com/sns/jscode2session?appid=%3CAppId%3E&secret=%3CAppSecret%3E&js_code=%3Ccode%3E&grant_type=authorization_code接口,这个接口需要前端返回的code,AppId 和AppSecret(微信鉴别开发者身份的重要信息)。这个接口会返回如下的json数据。 {
'openid' : '微信用户的唯一标识',
'session_key' : '会话密钥',
'unionid' : '用户在微信开放平台的唯一标识符。本字段在满足一定条件的情况下才返回。'
} -
绑定用户身份和微信用户ID。将用户身份与微信用户ID 绑定再一起,可以方便下次登录时,获取用户的相关信息。 -
后端为登录用户生成一个专属的 SessionId,并返回给前端。在后面,前端发送请求时,只需带上后端返回的 SessionId,就能辨别是哪个用户在请求操作了。
? ? ? ? 想要深入了解的朋友,可以查考?微信小程序开发文档。
|