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 前端相關的技術文章、工具資源、精選課程、熱點資訊。


Tags: