微信小程序 -- 实现“微信登录”功能
【此文档后期阅读CSDN宁在春微信登录有感而写,特别感谢】
先看看这两篇文章 然后我们上图...
其实这个大概流程:
1. 通过wx.login 获取用户code
2.发送code 和 appId 和 appSecret 和 grant_type(固定的) 给微信 auth.code2Session 接口
3.成功接口返回openid 和 session_key 回来。
auth.code2Session 接口:
GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
2022年7月6日 20:03:52 更新:
首先查看小程序官方说明获取个人信息被kill了。一定要用:
uni.getUserProfile
所以:
登录:
获取CODE,请求后端:
后端:
换取sessionId:
记住了啊,换回来的session_id 和 openId
sessioId会过期的,多次登录就多个sessionId,...
但是openId是唯一的,不变的,除非你手贱去清除后台那个玩意【key】
所以这用UUID做Token并且存入了Redis【也没时间,你完全可以自己加时间,如果多次登录的话岂不是炸掉? 啊哈哈哈 开个玩笑...】,其实吧会有很多个UUID和SessionKet和openID,所以登录之前我们可以先判断用户是否登录过。
如果登录过的话,我们那就用之前获取用户信息的iv和encryptedData和SessionKEY换取用户信息,然后返回到微信即可
微信官方:
我们再来看看解密:
至于为什么可以这样解密:【LookLook官方】
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html
其实我也看不懂 其实就是 SessionKEY是关键就对了好吗?
就是这样玩的,至于....unionID 貌似又得换取... 文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/union-id.html
本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/15413472.html