原文位址:http://tutorials.jenkov.com/oauth2/authorization-code-request-response.html
作者:jakob jenkov 譯者:林浩 校對:郭蕾
授權碼授權總共由2個請求和2個響應組成。一個授權請求+響應,和一個令牌請求+響應。 <b>授權請求</b> 授權請求被發送到授權端點以擷取一個授權碼。這是請求中用到的參數:
response_type
必須。必須被設定到代碼裡
client_id
必須。當用戶端被注冊時,授權伺服器要辨別的用戶端。
redirect_uri
可選。通過用戶端注冊的重定向uri。
scope
可選。請求可能的作用域。
state
可選(推薦的)。任何需要被傳遞到用戶端請求的uri用戶端的狀态。
<b>授權響應</b> 授權響應包含了需要用來擷取通路令牌的授權碼。這是響應包括的參數:
code
必須。授權碼
如果出現在請求中,必須包含。如果有的話,和用戶端請求中發送的state參數一樣。
<b>授權錯誤</b> 如果授權期間發生錯誤,兩種情況會發生。 第一種情形是,用戶端沒有被授權或識别。比如,請求中錯誤的重定向uri。這種情況下,授權伺服器沒有必要重定向資源擁有者到重定向uri,而是通知資源擁有者發生了錯誤。 第二種情形是,用戶端被正确地授權了,但是其他某些事情失敗了。這種情況下下面地錯誤響應會被發送到用戶端,包括在重定向uri中:
error
必須。必須是預先定義的錯誤碼之一。參見規範查查這些錯誤碼及它們的含義。
error_description
可選。一段utf-8編碼的描述錯誤的文本。适用于開發者,而不是最終使用者。
error_uri
可選。 一個指向包含人類可讀的錯誤資訊網頁的uri。
必須。如果出現在授權請求期間,和請求中的state參數一樣。
<b>令牌請求</b> 一旦授權碼被擷取到了,用戶端可以用它擷取通路令牌。這是通路令牌請求參數:
grant_type
必須。必須被設定到授權碼中。
必須。被授權伺服器接收到的授權碼。
必須。如果請求uri包括在授權請求中,之後必須是相同的。
<b>令牌響應</b> 通路令牌請求的響應是包含通路令牌及一些更多資訊的json字元串:
access_type屬性是授權伺服器配置設定的通路令牌。 token_type是被授權伺服器配置設定的令牌類型。 expires_in屬性是指通路令牌過多少秒後,就不再有效。通路令牌過期值是可選的。 refresh_token屬性包含令牌過期後重新整理的令牌。重新整理的令牌用于,一旦響應傳回的不再有效時,包含一個新的通路令牌。