微信授權登錄這塊,一開始我是研究半天,后來并沒用用到,本來想前端獲取openid和unionid的,但是后來選擇了走后臺獲取了,但是也是研究半天,決定寫下來記錄一下,方便大家參考
微信授權的話,首先說,得給用戶制造一個自己手動觸發(fā)授權的環(huán)境,所以先搭建一個頁面,簡簡單單的

授權頁面
按鈕這塊的open-type需要是getUserInfo
<button type='primary' open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="bindGetUserInfo">
授權登錄
</button>
到這兒的時候一定要梳理清晰你要的是哪些數(shù)據(jù),還有這些數(shù)據(jù)要通過哪種方式去獲得和需要的參數(shù)
用戶授權后,需要知道用戶是否授權成功,通過wx.getSetting查看是否成功
成功的話,通過wx.login獲取用戶的code,因為獲取openid和unionid需要用code
然后最后就是通過微信的auth.code2Session獲取我們最終想要的
獲取openid和unionid、session_key
/**
* @name 獲取用戶信息
* @date 2021-02-20
*/
bindGetUserInfo(e) {
// 獲取用戶授權
wx.getSetting({
success: (res) => {
//判斷是否授權成功
if (res.authSetting['scope.userInfo']) {
wx.login({
success: (rest) => {
//用戶的code
let userCode = rest.code
wx.request({
// 自行補上自己的 APPID 和 SECRET
url:`https://api.weixin.qq.com/sns/jscode2session?appid=自己的appid&secret=密鑰&js_code=${userCode}&grant_type=authorization_code`,
success: res => {
// 獲取到用戶的 openid
console.log("用戶的openid:" + res.data.openid);
console.log("用戶的unionid:" + res.data.unionid);
console.log("用戶的session_key:" + res.session_key);
},
fail(e){
wx.showToast({
title: '獲取失敗',
icon: 'none'
});
},
});
}
})
} else {
wx.showToast({
title: '請確認授權',
icon: 'none'
});
}
}
});
},
tips:獲取unionid的話是需要微信開放平臺綁定小程序的,不然是不可能獲取到的
查找 APPID 和 SECRET
微信公眾平臺->開發(fā)->開發(fā)管理->開發(fā)設置

開發(fā)設置.png
auth.code2Session
比較簡單,大家可以自行查看 link
在調(diào)這個接口的時候,一開始總是提示我code無效 40029,找了半天是因為創(chuàng)建項目用的appid和接口參數(shù)的appid不一樣,希望大家寫的時候注意
這樣就可以獲取到我們想要的數(shù)據(jù)啦