流程:
1、用戶訪問小程序,觸發(fā)app.js的 wx.login 方法,獲取到code并存儲(chǔ)入 app.globalData ;
2、當(dāng)用戶點(diǎn)擊登錄按鈕,通過app.globalData獲取code,并發(fā)起request到服務(wù)器,服務(wù)器通過包裝url(含code、appid、secret)獲取用戶的openid,并返回給小程序;
3、小程序獲取用戶的基本信息,并向服務(wù)器發(fā)起查詢,若該openid已注冊(cè)用戶,則直接登錄,若未注冊(cè),則把用戶信息錄入數(shù)據(jù)庫,再登錄;作為唯一標(biāo)識(shí)的openid,則存入小程序緩存中。
部分代碼:
app.js
//app.js
App({
onLaunch: function () {
// 展示本地存儲(chǔ)能力,登錄信息也可以通過緩存功能來處理
var logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
// 登錄
wx.login({
success: function (res) {
const app = getApp()
app.globalData.code = res.code
console.log("code:"+app.globalData.code)
//這里獲取code以后,可以向服務(wù)器發(fā)起請(qǐng)求獲取用戶的openid
}
})
},
globalData: {
userInfo: {},
hasUserInfo: false,
openid: "",
code: ""
}
})