小程式登入操作
阿新 • • 發佈:2020-09-23
小程式中提供了內部介面wx.login,可參考官方文件
但是login介面只是獲取登入憑證code。
真正算登入需要獲取到openid,session_key,openid是小程式對外開發的身份的唯一標識,相當於使用者id,這個獲取過程一般都是在伺服器中進行,獲取成功後傳給小程式儲存到本地。
伺服器通過請求地址: https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
appid:是小程式的開發id
secret:
js_code:wx.login的返回值code
grant_type:官方示例只需要寫authorization_code
對於有需要登入的小程式,此過程需要在app.js中使用,app相當於初始呼叫
在使用小程式時,先判斷當前Session是否過去,wx.checkSession,官方文件,如果過期在呼叫登入介面
App({ onLaunch: function () { if (!wx.cloud) { console.error('請使用 2.2.3 或以上的基礎庫以使用雲能力') } else { wx.cloud.init({ traceUser: true, }) } this.globalData = {} wx.checkSession({ success: (res)wx.setStorageSync('session_key',res.data.session_key) wx.setStorageSync('openid',res.data.openid)=> { console.log("未過期") }, fail:(res)=>{ console.log("已過期") wx.login({ timeout: 3000, success:(res)=>{ console.log(res.code) if(res.code){ wx.request({ url: 'url', data:{"code":res.code }, success:(res)=>{ console.log("伺服器請求介面成功")
}, fail:(res)=>{ console.log("伺服器請求錯誤") } }) } }, fail:(res)=>{ console.log("login登入失敗") } }) } }) } })