授權碼授權總共由2個請求和2個響應組成。一個授權請求+響應,和一個令牌請求+響應。 授權請求 授權請求被發(fā)送到授權端點以獲取一個授權碼。這是請求中用到的參數:
response_type | 必須。必須被設置到代碼里 |
---|---|
client_id | 必須。當客戶端被注冊時,授權服務器要標識的客戶端。 |
redirect_uri | 可選。通過客戶端注冊的重定向URI。 |
scope | 可選。請求可能的作用域。 |
state | 可選(推薦的)。任何需要被傳遞到客戶端請求的URI客戶端的狀態(tài)。 |
授權響應 授權響應包含了需要用來獲取訪問令牌的授權碼。這是響應包括的參數:
code | 必須。授權碼 |
---|---|
state | 如果出現在請求中,必須包含。如果有的話,和客戶端請求中發(fā)送的state參數一樣。 |
如果授權期間發(fā)生錯誤,兩種情況會發(fā)生。 第一種情形是,客戶端沒有被授權或識別。比如,請求中錯誤的重定向URI。這種情況下,授權服務器沒有必要重定向資源擁有者到重定向URI,而是通知資源擁有者發(fā)生了錯誤。 第二種情形是,客戶端被正確地授權了,但是其他某些事情失敗了。這種情況下下面地錯誤響應會被發(fā)送到客戶端,包括在重定向URI中:
error | 必須。必須是預先定義的錯誤碼之一。參見規(guī)范查查這些錯誤碼及它們的含義。 |
---|---|
error_description | 可選。一段UTF-8編碼的描述錯誤的文本。適用于開發(fā)者,而不是最終用戶。 |
error_uri | 可選。 一個指向包含人類可讀的錯誤信息網頁的URI。 |
state | 必須。如果出現在授權請求期間,和請求中的state參數一樣。 |
一旦授權碼被獲取到了,客戶端可以用它獲取訪問令牌。這是訪問令牌請求參數:
grant_type | 必須。必須被設置到授權碼中。 |
---|---|
code | 必須。被授權服務器接收到的授權碼。 |
redirect_uri | 必須。如果請求URI包括在授權請求中,之后必須是相同的。 |
令牌響應 訪問令牌請求的響應是包含訪問令牌及一些更多信息的JSON字符串:
{ "access_token" : "...",
"token_type" : "...",
"expires_in" : "...",
"refresh_token" : "...",
}
access_token屬性是授權服務器分配的訪問令牌。 token_type是被授權服務器分配的令牌類型。 expires_in屬性是指訪問令牌過多少秒后,就不再有效。訪問令牌過期值是可選的。 refresh_token屬性包含令牌過期后刷新的令牌。刷新的令牌用于,一旦響應返回的不再有效時,包含一個新的訪問令牌。
更多建議: