百度智能小程序開發(fā)服務(wù) 百度OAuth授權(quán)說明

2018-07-10 16:15 更新

流程示意圖


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

百度智能小程序開發(fā)服務(wù) 百度OAuth授權(quán)說明

相關(guān)概念


OAuth 2.0(開放授權(quán)):一個(gè)開放登錄授權(quán)標(biāo)準(zhǔn)。用戶授權(quán)后,第三方智能小程序無需獲取用戶的用戶名和密碼就可以訪問該用戶。

Session Key:用戶對(duì)智能小程序的授權(quán)會(huì)話的密鑰。用戶授權(quán)后,開發(fā)者可以通過百度開放平臺(tái)獲取授權(quán)會(huì)話的Session Key,此后便可在智能小程序中獲取用戶信息。

Code:用戶授權(quán)的標(biāo)識(shí)。在用戶完成對(duì)應(yīng)用的授權(quán)后,會(huì)生成一個(gè)很短時(shí)間(十分鐘)內(nèi)有效的授權(quán)標(biāo)識(shí),開發(fā)者通過服務(wù)端請(qǐng)求,將code以及智能小程序的client_id和secret_key傳到開放平臺(tái)接口,可以獲取到SessionKey。

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


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

智能小程序在App內(nèi)部運(yùn)行時(shí)的授權(quán)流程


智能小程序在App內(nèi)部運(yùn)行時(shí)采用Authorization Code獲取SessionKey的授權(quán)驗(yàn)證。

對(duì)于智能小程序而言,其流程由獲取Authorization Code,和通過Authorization Code獲取Session Key這2步組成。

第一步:獲取Authorization Code

智能小程序可以使用swan.login()接口獲取Authorization Code。

第二步:通過 Authorization Code 獲取 Session Key

智能小程序在其服務(wù)端中發(fā)送POST請(qǐng)求到百度 OAuth2.0 授權(quán)服務(wù)地址,并帶上對(duì)應(yīng)的參數(shù),便可獲取到Session Key。

獲取Session Key的URL地址:

https://openapi.baidu.com/nalogin/getSessionKeyByCode

獲取Session Key需要的參數(shù):

參數(shù)名 是否必須 說明
code 通過上面第一步所獲得的Authorization Code
client_id 智能小程序的App Key
sk 智能小程序的App Secret

若參數(shù)無誤,服務(wù)器將返回一段JSON文本,包含以下數(shù)據(jù):

字段名 說明
session_key 用戶的Session Key

若請(qǐng)求錯(cuò)誤,服務(wù)器將返回一段JSON文本,包含以下參數(shù):

字段名 說明
error 錯(cuò)誤碼;關(guān)于錯(cuò)誤碼的詳細(xì)信息請(qǐng)參考”錯(cuò)誤碼列表”一節(jié)。
error_description 錯(cuò)誤描述信息,用來幫助理解和解決發(fā)生的錯(cuò)誤。

第三步:獲取用戶信息

完成上述兩步之后,小程序可調(diào)用swan.getUserInfo()方法獲取用戶信息

再次獲取用戶信息

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

要判斷當(dāng)前用戶的授權(quán)會(huì)話是否仍處于有效期,可調(diào)用checkSession()方法進(jìn)行判斷。

錯(cuò)誤碼列表


錯(cuò)誤碼 錯(cuò)誤信息 詳細(xì)描述
invalid_request invalid refresh token 請(qǐng)求缺少某個(gè)必需參數(shù),包含一個(gè)不支持的參數(shù)或參數(shù)值,或者格式不正確。
invalid_client unknown client id client_id、client_secret 參數(shù)無效。
invalid_grant The provided authorization grant is revoked 提供的 Access Grant 是無效的、過期的或已撤銷的,例如,Authorization Code 無效(一個(gè)授權(quán)碼只能使用一次)、Refresh Token 無效、redirect_uri 與獲取 Authorization Code 時(shí)提供的不一致、Devie Code 無效(一個(gè)設(shè)備授權(quán)碼只能使用一次)等。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)