一、獲取微信小程序登錄相關信息
在進行微信小程序登錄功能實現之前,我們首先要了解微信小程序提供的相關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-hant/n/245356.html