微信小程式之授權登入

2022-09-23 18:03:14 字數 733 閱讀 5331

網上有些是說iv內空格導致解密失敗,我出錯的情況下並沒有出現空格,排除這種情況。

有說是因為請求順序,但是按照微信官方文件,似乎並不是最新的,至少我授權方式不完全跟文件一樣。

我的授權方式

通過新增乙個按鈕並且設定 open-type="getuserinfo"

在按鈕點選事件裡,會返回一些授權登入需要用到的字段如:iv、encrypteddata、signature、rawdata

這個時候再呼叫 wx.login() 去獲取code,整合以上資料向己方伺服器傳送請求獲取使用者唯一標識 token。

通過以上的方式是可以成功登入,但是偶然會出現請求己方伺服器授權登入失敗,再一次就會成功。

原因在於請求順序,這裡的請求順序是先請求 wx.getuserinfo(按鈕) 再請求 wx.login()。有時候獲取code後iv已經失效,所以失敗。

解決方案:在請求 wx.login() 後,呼叫一次 wx.getuserinfo(廢棄介面) ,更新iv等資訊。注意:這裡呼叫的廢棄介面只是不再彈出授權請求視窗,但還是能夠獲取到 iv 等資訊,授權介面彈窗已將在點選按鈕的時候彈出,並且授權了,所以沒毛病。

再總結一下,正確的順序:wx.getuserinfo(按鈕) -> wx.login() -> wx.getuserinfo(廢棄介面),整合以上操作獲取到的最近資料 code、iv、encrypteddata、signature、rawdata 傳給己方伺服器,授權登入成功。

以下貼上我的業務**

微信小程式授權登入

在這裡插入描述 前端部分 編寫自己的介面login.wxml login.js 獲取應用例項 page 生命週期函式 監聽頁面載入 onload function options 登入 dologin function e 後端部分 後端運用的是springboot框架 專案結構 官方教程 官方流程...

微信小程式授權登入

首先這個流程是怎麼樣的呢?他這個流程圖還是很ok的 code換取openid res getcurl url return json array code 0 msg 獲取成功!data json decode res 然後前段就可以獲取到代表使用者的openid和sessionkey了,然後就是我...

uni app微信小程式登入授權

首先是需要用到乙個授權按鈕來觸發獲取使用者資訊授權 關鍵在於 open type 為 getuserinfo 然後有個 getuserinfo的事件,把獲取授權介面寫到該事件裡面去 方法如下 ifdef mp weixin uni.getprovider fail fail else endif 在...