微信小程序 -- 实现“微信登录”功能

【此文档后期阅读CSDN宁在春微信登录有感而写,特别感谢】

 

1.小程序登录流程
2.小程序登录接口

先看看这两篇文章 然后我们上图...

 

 其实这个大概流程:

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

 

posted @ 2021-10-16 10:02  咸瑜  阅读(825)  评论(0编辑  收藏  举报