微信小程序 -- 實現“微信登錄”功能


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM