uniapp登錄流程詳解uni.login
- 2019 年 11 月 24 日
- 筆記
uni.login(OBJECT) 登錄
H5平台登陸注意事項:
微信內嵌瀏覽器運行H5版時,可通過js sdk實現微信登陸,需要引入一個單獨的js,詳見 普通瀏覽器上實現微信登陸,並非開放API,需要向微信申請,僅個別開發者有此許可權 H5平台的其他登陸,比如QQ登陸、微博登陸,uni-app未封裝,請在條件編譯里按普通H5寫法編寫。
OBJECT 參數說明
參數名 類型 必填 說明 平台差異說明 provider String 否 登錄服務提供商,通過 uni.getProvider 獲取,如果不設置則彈出登錄列表選擇介面 scopes String/Array 見平台差異說明 授權類型,默認 auth_base。支援 auth_base(靜默授權)/ auth_user(主動授權) / auth_zhima(芝麻信用) 支付寶小程式 timeout Number 否 超時時間,單位ms 微信小程式、百度小程式 success Function 否 介面調用成功的回調 fail Function 否 介面調用失敗的回調函數 complete Function 否 介面調用結束的回調函數(調用成功、失敗都會執行)
success 返回參數說明
參數名 說明 authResult 登錄服務商提供的登錄資訊,服務商不同返回的結果不完全相同 errMsg 描述資訊
uni.login({ provider: 'weixin', success: function (loginRes) { console.log(loginRes.authResult); } });uni.checkSession 檢查登錄狀態是否過期
屬性 類型 必填 說明 success function 否 介面調用成功的回調函數 fail function 否 介面調用失敗的回調函數 complete function 否 介面調用結束的回調函數(調用成功、失敗都會執行)
uni.getUserInfo(OBJECT) 獲取用戶資訊。
UNI-APP 開發微信公眾號(H5)JSSDK 的使用方式
在 uniapp 中可以使用模組方式引用微信 js-sdk ,微信官網直接下載的使用有問題,可以使用 jweixin-module。
安裝
下載使用方式 下載地址:https://unpkg.com/[email protected]/out/index.js
使用、
var jweixin = require('jweixin-module') jweixin.ready(function(){ // TODO });一、小程式:
1、使用 button 組件,並將 open-type 指定為 getUserInfo 類型,獲取用戶基本資訊。
詳情參考文檔:
https://developers.weixin.qq.com/miniprogram/dev/component/button.html
2、使用 open-data 展示用戶基本資訊。
詳情參考文檔:
https://developers.weixin.qq.com/miniprogram/dev/component/open-data.html
provider String 否 登錄服務提供商,通過 uni.getProvider 獲取 withCredentials Boolean 否 是否帶上登錄態資訊。 微信小程式、頭條小程式 lang Number 否 指定返回用戶資訊的語言,默認為 en。更多值請參考下面的說明。 微信小程式 timeout Number 否 超時時間,單位 ms。 微信小程式 success Function 否 介面調用成功的回調 fail Function 否 介面調用失敗的回調函數 complete Function 否 介面調用結束的回調函數(調用成功、失敗都會執行)
userInfo 參數說明
參數 類型 說明 平台差異說明 nickName String 用戶昵稱 openId String 該服務商唯一用戶標識 5+App avatarUrl String 用戶頭像
uni.login({ provider: 'weixin', success: function (loginRes) { console.log(loginRes.authResult); // 獲取用戶資訊 uni.getUserInfo({ provider: 'weixin', success: function (infoRes) { console.log('用戶昵稱為:' + infoRes.userInfo.nickName); } }); } });說明: 調用 wx.login() 獲取 臨時登錄憑證code ,並回傳到開發者伺服器。 調用 auth.code2Session 介面,換取 用戶唯一標識 OpenID 和 會話密鑰 session_key。 之後開發者伺服器可以根據用戶標識來生成自定義登錄態,用於後續業務邏輯中前後端交互時識別用戶身份。
注意:
會話密鑰 session_key 是對用戶數據進行 加密簽名 的密鑰。為了應用自身的數據安全,開發者伺服器不應該把會話密鑰下發到小程式,也不應該對外提供這個密鑰。 臨時登錄憑證 code 只能使用一次
uni.getProvider(OBJECT) 獲取服務供應商。僅App平台支援。
在App平台,可用的服務商,是打包環境中配置的服務商,與手機端安裝了什麼app沒有關係。
雲打包在manifest中配置相關模組和SDK資訊,離線打包在原生工程中配置。某個服務商配置被打包進去,運行時就能得到相應的服務供應商。
關於目前文章內容即涉及前端,PHP知識點,如果有興趣即可關注,很榮幸,能被您發現,真是慧眼識英!也感謝您的關注,在未來的日子裡,希望能夠一直默默的支援我,我也會努力寫出更多優秀的作品。我們一起成長,從零基礎學編程,將 Web前端領域、數據結構與演算法、網路原理等通俗易懂的呈現給小夥伴。分享 Web 前端相關的技術文章、工具資源、精選課程、熱點資訊。