百度OAuth2.0在接受驗(yàn)證授權(quán)請(qǐng)求時(shí),授權(quán)服務(wù)器會(huì)按照OAuth2.0協(xié)議對(duì)本次請(qǐng)求參數(shù)、請(qǐng)求頭部進(jìn)行檢驗(yàn),若請(qǐng)求不合法或驗(yàn)證未通過(guò),授權(quán)服務(wù)器會(huì)返回相應(yīng)的錯(cuò)誤信息。?
錯(cuò)誤碼返回信息簡(jiǎn)介
錯(cuò)誤碼返回方式分兩種:
1、在瀏覽器訪問(wèn)請(qǐng)求授權(quán)Endpoint"https://openapi.baidu.com/oauth/2.0/authorize"時(shí)返回,直接在瀏覽器頁(yè)面上顯示錯(cuò)誤信息。
2、在應(yīng)用的服務(wù)端訪問(wèn)數(shù)據(jù)接口,如: 請(qǐng)求Access Token Endpoint"https://openapi.baidu.com/oauth/2.0/token"時(shí)返回,返回方式是返回一段JSON文本,包含以下字段:
error:錯(cuò)誤碼;?
error_description:錯(cuò)誤描述信息,用來(lái)幫助理解和解決發(fā)生的錯(cuò)誤。
例如:
HTTP/1.1 400 Bad Request
Content-Type: application/json
Cache-Control: no-store
{
? ?"error": "invalid_grant",
? ?"error_description": "Invalid authorization code: ANXxSNjwQDugOnqeikRMu2bKaXCdlLxn"
invalid_request ? ?
invalid refresh token ? ?
請(qǐng)求缺少某個(gè)必需參數(shù),包含一個(gè)不支持的參數(shù)或參數(shù)值,或者格式不正確。 ? ?
invalid_client ? ?
unknown client id ? ?
client_id”、“client_secret”參數(shù)無(wú)效。 ? ?
invalid_grant ? ?
The provided authorization grant is revoked ? ?
提供的Access Grant是無(wú)效的、過(guò)期的或已撤銷的,例如,Authorization Code無(wú)效(一個(gè)授權(quán)碼只能使用一次)、Refresh Token無(wú)效、redirect_uri與獲取Authorization Code時(shí)提供的不一致、Devie Code無(wú)效(一個(gè)設(shè)備授權(quán)碼只能使用一次)等。 ? ?
unauthorized_client ? ?
The client is not authorized to use this authorization grant type ? ?
應(yīng)用沒(méi)有被授權(quán),無(wú)法使用所指定的grant_type。 ? ?
unsupported_grant_type ? ?
The authorization grant type is not supported ? ?
“grant_type”百度OAuth2.0服務(wù)不支持該參數(shù)。 ? ?
invalid_scope ? ?
The requested scope is exceeds the scope granted by the resource owner ? ?
請(qǐng)求的“scope”參數(shù)是無(wú)效的、未知的、格式不正確的、或所請(qǐng)求的權(quán)限范圍超過(guò)了數(shù)據(jù)擁有者所授予的權(quán)限范圍。 ? ?
expired_token ? ?
refresh token has been used ? ?
提供的Refresh Token已過(guò)期 ? ?
redirect_uri_mismatch ? ?
Invalid redirect uri ? ?
“redirect_uri”所在的根域與開發(fā)者注冊(cè)應(yīng)用時(shí)所填寫的根域名不匹配。 ? ?
unsupported_response_type ? ?
The response type is not supported ? ?
“response_type”參數(shù)值不為百度OAuth2.0服務(wù)所支持,或者應(yīng)用已經(jīng)主動(dòng)禁用了對(duì)應(yīng)的授權(quán)模式 ? ?
slow_down ? ?
The device is polling too frequently ? ?
Device Flow中,設(shè)備通過(guò)Device Code換取Access Token的接口過(guò)于頻繁,兩次嘗試的間隔應(yīng)大于5秒。 ? ?
authorization_pending ? ?
User has not yet completed the authorization ? ?
Device Flow中,用戶還沒(méi)有對(duì)Device Code完成授權(quán)操作。 ? ?
authorization_declined ? ?
User has declined the authorization ??
Device Flow中,用戶拒絕了對(duì)Device Code的授權(quán)操作。 ? ?
invalid_referer ? ?
Invalid Referer ? ?
Implicit Grant模式中,瀏覽器請(qǐng)求的Referer與根域名綁定不匹配 ? ?
閱讀本文的人還可以閱讀: