百度智能小程序 授權(quán)流程說明

2020-09-05 14:38 更新

授權(quán)流程說明

智能小程序可以通過百度官方提供的登錄能力方便地獲取百度提供的用戶身份標(biāo)識(shí),快速建立智能小程序內(nèi)的用戶體系。

概念介紹:

  • oauth 2.0(開放授權(quán)):一個(gè)開放登錄授權(quán)標(biāo)準(zhǔn)。用戶授權(quán)后,第三方智能小程序無需獲取用戶的用戶名和密碼就可以訪問該用戶的信息。
  • code:臨時(shí)登錄憑證。在用戶完成對(duì)應(yīng)用的授權(quán)后,會(huì)生成一個(gè)很短時(shí)間(十分鐘)內(nèi)有效的授權(quán)標(biāo)識(shí),開發(fā)者通過服務(wù)端請(qǐng)求,將 code 以及智能小程序的 client_id 和 appSecret 傳到開放平臺(tái)接口,可以獲取到 session_key 。
  • session_key:用戶對(duì)智能小程序的授權(quán)會(huì)話的密鑰。用戶授權(quán)后,開發(fā)者可以通過百度開放平臺(tái)獲取授權(quán)會(huì)話的 session_key

使用百度授權(quán)前準(zhǔn)備:

您需要?jiǎng)?chuàng)建一個(gè)智能小程序以獲取 client_id(appKey)和 appSecret ,以上兩者均從智能小程序開發(fā)者后臺(tái)查看。

流程示意圖

以下是智能小程序使用 oauth 2.0 進(jìn)行授權(quán)及獲取用戶信息的示意圖:

圖片

流程說明:

  1. 智能小程序在 app 內(nèi)部運(yùn)行時(shí)使用 swan.login() 接口獲取 授權(quán)標(biāo)識(shí) code;
  2.  開發(fā)者服務(wù)器 通過 授權(quán)標(biāo)識(shí) code 獲取會(huì)話密鑰 session_key;
  3.  調(diào)用 swan.getUserInfo 獲取用戶信息;
  4.  如果需要使用接口返回的用戶信息加密數(shù)據(jù),將敏感用戶信息加密數(shù)據(jù)通過 swan.reques發(fā)送至開發(fā)者服務(wù)器進(jìn)行解密后返回智能小程序 (為了應(yīng)用自身的數(shù)據(jù)安全,開發(fā)者服務(wù)器不應(yīng)該把會(huì)話密鑰下發(fā)到小程序,也不應(yīng)該對(duì)外提供這個(gè)密鑰)。

詳情參見:開發(fā)者后臺(tái)校驗(yàn)與解密開放數(shù)據(jù)

注:當(dāng)用戶完成了授權(quán),且授權(quán)會(huì)話仍處于有效期時(shí),智能小程序不需要每次都進(jìn)行前兩步,而是可以直接進(jìn)行第三步獲取用戶信息。

要判斷當(dāng)前用戶的授權(quán)會(huì)話是否仍處于有效期,可調(diào)用 swan.checkSession() 方法進(jìn)行判斷,詳見 下載小程序支付 demo

注意

  • 臨時(shí)登錄憑證 code 有效期10分鐘且只能使用一次
  • 會(huì)話密鑰 session_key 是對(duì)用戶數(shù)據(jù)進(jìn)行 加密簽名 的密鑰。為了應(yīng)用自身的數(shù)據(jù)安全,開發(fā)者服務(wù)器不應(yīng)該把會(huì)話密鑰下發(fā)到小程序,也不應(yīng)該對(duì)外提供這個(gè)密鑰。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)