溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信小程序API怎么實現登錄憑證

發布時間:2022-03-15 15:06:56 來源:億速云 閱讀:413 作者:iii 欄目:開發技術

這篇文章主要介紹了微信小程序API怎么實現登錄憑證的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇微信小程序API怎么實現登錄憑證文章都會有所收獲,下面我們一起來看看吧。

wx.login(OBJECT)


調用接口獲取登錄憑證(code)進而換取用戶登錄態信息,包括用戶的唯一標識(openid) 及本次登錄的 會話密鑰(session_key)。用戶數據的加解密通訊需要依賴會話密鑰完成。

OBJECT參數說明:

參數名 類型 必填 說明
success Function 接口調用成功的回調函數
fail Function 接口調用失敗的回調函數
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

success返回參數說明:

參數名 類型 說明
errMsg String 調用結果
code String 用戶允許登錄后,回調內容會帶上 code(有效期五分鐘),開發者需要將 code 發送到開發者服務器后臺,使用code 換取 session_key api,將 code 換成 openid 和 session_key

示例代碼:

//app.jsApp({
  onLaunch: function() {
    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 換取 session_key

這是一個 HTTPS 接口,開發者服務器使用登錄憑證 code 獲取 session_key 和 openid。其中 session_key 是對用戶數據進行加密簽名的密鑰。為了自身應用安全,session_key 不應該在網絡上傳輸。

接口地址:

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

請求參數:

參數 必填 說明
appid 小程序唯一標識
secret 小程序的 app secret
js_code 登錄時獲取的 code
grant_type 填寫為 authorization_code

返回參數:

參數 說明
openid 用戶唯一標識
session_key 會話密鑰
unionid 用戶在開放平臺的唯一標識符。本字段在滿足一定條件的情況下才返回。具體參看UnionID機制說明

返回說明:

//正常返回的JSON數據包{      "openid": "OPENID",      "session_key": "SESSIONKEY"      "unionid":  "UNIONID"
}//錯誤時返回JSON數據包(示例為Code無效){"errcode": 40029,"errmsg": "invalid code"}

wx.checkSession(OBJECT)


通過上述接口獲得的用戶登錄態擁有一定的時效性。用戶越久未使用小程序,用戶登錄態越有可能失效。反之如果用戶一直在使用小程序,則用戶登錄態一直保持有效。具體時效邏輯由微信維護,對開發者透明。開發者只需要調用wx.checkSession接口檢測當前用戶登錄態是否有效。登錄態過期后開發者可以再調用wx.login獲取新的用戶登錄態。

OBJECT參數說明:

參數名 類型 必填 說明
success Function 接口調用成功的回調函數,登陸態未過期
fail Function 接口調用失敗的回調函數,登陸態已過期
complete Function 接口調用結束的回調函數(調用成功、失敗都會執行)

示例代碼:

wx.checkSession({
  success: function(){//session 未過期,并且在本生命周期一直有效
  },
  fail: function(){//登錄態過期wx.login() //重新登錄    ....
  }
})

登錄態維護

通過wx.login()獲取到用戶登錄態之后,需要維護登錄態。開發者要注意不應該直接把 session_key、openid 等字段作為用戶的標識或者 session 的標識,而應該自己派發一個 session 登錄態(請參考登錄時序圖)。對于開發者自己生成的 session,應該保證其安全性且不應該設置較長的過期時間。session 派發到小程序客戶端之后,可將其存儲在 storage ,用于后續通信使用。

通過wx.checkSession()檢測用戶登錄態是否失效。并決定是否調用wx.login() 重新獲取登錄態

登錄時序圖

Bug & Tip

bug: iOS/Android 6.3.30,在 App.onLaunch 調用 wx.login 會出現異常;

關于“微信小程序API怎么實現登錄憑證”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“微信小程序API怎么實現登錄憑證”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女