微信授权登录流程
第一步:wx.login获取 用户临时登录凭证code
第二步:wx.getUserInfo获取加密过的数据encryptedData和解密参数iv
第三步:把步骤一、二中的code、encryptedData、iv传到开发者自己服务端
第三步:服务端获取到code、encryptedData、iv之后用get方法请求如下微信接口
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
appid:小程序appid
secret: 小程序密钥
js_code: 第一步获取的临时登录凭证code
grant_type:‘authorization_code’
接口会返回 openid, session_key,注意:用户已经授权过的平台还会返回unionId,如果你只是需要unionId,则到此为止
官方文档说法如图:

没有授权过则用encryptedData、session_key、iv、appid、secret进行解密,官方多语言解密示例下载链接:
unionId解密示例
包含c++ php python node
第四步:仿照示例解密后获得unionId,想做什么就做什么了~
以下是授权登录前端代码:
authLogin () {
wx.login({
success: loginRes => {
let code = loginRes.code // 获取用户临时code
wx.getUserInfo({

本文介绍了微信小程序授权登录的流程,包括wx.login获取code、wx.getUserInfo获取加密数据,以及服务端如何获取openid和unionId。在用户未授权的情况下,使用encryptedData、session_key、iv解密获取unionId。然而,微信更新了授权方式,导致先调用getUserInfo再调用wx.login时解密失败。解决方案是在onLoad中调用wx.login并定时刷新code,以应对code5分钟有效期的问题。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



