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