W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
以下是智能小程序使用OAuth 2.0進(jìn)行授權(quá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。
您需要?jiǎng)?chuàng)建一個(gè)智能小程序以獲取client_id(AppKey)和client_secret(AppSecret),以上兩者均從智能小程序開發(fā)者后臺(tái)查看。
智能小程序在App內(nèi)部運(yùn)行時(shí)采用Authorization Code獲取SessionKey的授權(quán)驗(yàn)證。
對(duì)于智能小程序而言,其流程由獲取Authorization Code,和通過Authorization Code獲取Session Key這2步組成。
智能小程序可以使用swan.login()接口獲取Authorization Code。
智能小程序在其服務(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ò)誤信息 | 詳細(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)碼只能使用一次)等。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: