流程:
1、用户访问小程序,触发app.js的 wx.login 方法,获取到code并存储入 app.globalData ;
2、当用户点击登录按钮,通过app.globalData获取code,并发起request到服务器,服务器通过包装url(含code、appid、secret)获取用户的openid,并返回给小程序;
3、小程序获取用户的基本信息,并向服务器发起查询,若该openid已注册用户,则直接登录,若未注册,则把用户信息录入数据库,再登录;作为唯一标识的openid,则存入小程序缓存中。
部分代码:
app.js
//app.js App({ onLaunch: function () { // 展示本地存储能力,登录信息也可以通过缓存功能来处理 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以后,可以向服务器发起请求获取用户的openid } }) }, globalData: { userInfo: {}, hasUserInfo: false, openid: "", code: "" } })