1. 程式人生 > 實用技巧 >小程式登入操作

小程式登入操作

小程式中提供了內部介面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) 
=> { 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("伺服器請求介面成功")
            wx.setStorageSync('session_key',res.data.session_key) wx.setStorageSync('openid',res.data.openid)
            
                },
                fail:(res)=>{
                  console.log("伺服器請求錯誤")
                }
              })
            }
          },
          fail:(res)=>{
            console.log("login登入失敗")
          }
        })
      }
    })
    }
})