【此文檔后期閱讀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