一、獲取微信小程序登錄相關信息
在進行微信小程序登錄功能實現之前,我們首先要了解微信小程序提供的相關API和參數。
微信小程序提供了wx.login()API用於獲取登錄憑證(code),該函數調用時會向微信伺服器請求一個code,開發者需要將所獲取的code發送到自己的伺服器上進行處理。
微信伺服器返回的code有效期為5分鐘,一個code只能用於一次登錄驗證,開發者需要對code進行處理,同時需要處理異常情況。
代碼示例:
wx.login({
success: function (res) {
if (res.code) {
//發起網路請求
wx.request({
url: 'https://test.com/onLogin',
data: {
code: res.code
}
})
} else {
console.log('登錄失敗!' + res.errMsg)
}
}
});
二、將Code發送到自己的伺服器進行處理
我們可以在我們自己的伺服器端,使用微信提供的API,通過code值獲取session_key和openid。這裡需要注意的是session_key和openid是一一對應的,而且相對應的session_key是有時效性的,在獲取完session_key之後需要將其保存到本地,以便後續介面進行使用。
代碼示例:
app.getUserInfo = function (cb) {
var that = this;
if (this.globalData.userInfo) {
typeof cb == "function" && cb(this.globalData.userInfo)
} else {
//調用登錄介面
wx.login({
success: function () {
wx.getUserInfo({
success: function (res) {
that.globalData.userInfo = res.userInfo
typeof cb == "function" && cb(that.globalData.userInfo)
}
})
}
})
}
}
三、將Openid返回給小程序前端進行保存
在處理完session_key和openid之後,需要將openid返回給小程序前端進行保存,以便後面其他介面使用。為了安全起見,需要將openid加密後返回,以增加系統的安全性,保證用戶信息的安全性。
整個登錄過程中需要做好異常處理,例如網路請求失敗、session_key過期等情況。
代碼示例:
wx.request({
url: 'https://test.com/onLogin',
data: {
code: res.code
},
success: function (res) {
console.log(res.data)
if (res.statusCode === 200) {
//成功
} else {
//失敗
}
},
fail: function () {
console.log('網路請求失敗');
}
})
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/245356.html
微信掃一掃
支付寶掃一掃