OAuth 2.0系列教程(八) 授权码授权
授權(quán)碼授權(quán)總共由2個(gè)請(qǐng)求和2個(gè)響應(yīng)組成。一個(gè)授權(quán)請(qǐng)求+響應(yīng),和一個(gè)令牌請(qǐng)求+響應(yīng)。?授權(quán)請(qǐng)求?授權(quán)請(qǐng)求被發(fā)送到授權(quán)端點(diǎn)以獲取一個(gè)授權(quán)碼。這是請(qǐng)求中用到的參數(shù):
| response_type | 必須。必須被設(shè)置到代碼里 |
| client_id | 必須。當(dāng)客戶端被注冊(cè)時(shí),授權(quán)服務(wù)器要標(biāo)識(shí)的客戶端。 |
| redirect_uri | 可選。通過(guò)客戶端注冊(cè)的重定向URI。 |
| scope | 可選。請(qǐng)求可能的作用域。 |
| state | 可選(推薦的)。任何需要被傳遞到客戶端請(qǐng)求的URI客戶端的狀態(tài)。 |
授權(quán)響應(yīng)?授權(quán)響應(yīng)包含了需要用來(lái)獲取訪問(wèn)令牌的授權(quán)碼。這是響應(yīng)包括的參數(shù):
| code | 必須。授權(quán)碼 |
| state | 如果出現(xiàn)在請(qǐng)求中,必須包含。如果有的話,和客戶端請(qǐng)求中發(fā)送的state參數(shù)一樣。 |
授權(quán)錯(cuò)誤?如果授權(quán)期間發(fā)生錯(cuò)誤,兩種情況會(huì)發(fā)生。 第一種情形是,客戶端沒(méi)有被授權(quán)或識(shí)別。比如,請(qǐng)求中錯(cuò)誤的重定向URI。這種情況下,授權(quán)服務(wù)器沒(méi)有必要重定向資源擁有者到重定向URI,而是通知資源擁有者發(fā)生了錯(cuò)誤。 第二種情形是,客戶端被正確地授權(quán)了,但是其他某些事情失敗了。這種情況下下面地錯(cuò)誤響應(yīng)會(huì)被發(fā)送到客戶端,包括在重定向URI中:
| error | 必須。必須是預(yù)先定義的錯(cuò)誤碼之一。參見(jiàn)規(guī)范查查這些錯(cuò)誤碼及它們的含義。 |
| error_description | 可選。一段UTF-8編碼的描述錯(cuò)誤的文本。適用于開(kāi)發(fā)者,而不是最終用戶。 |
| error_uri | 可選。 一個(gè)指向包含人類(lèi)可讀的錯(cuò)誤信息網(wǎng)頁(yè)的URI。 |
| state | 必須。如果出現(xiàn)在授權(quán)請(qǐng)求期間,和請(qǐng)求中的state參數(shù)一樣。 |
令牌請(qǐng)求?一旦授權(quán)碼被獲取到了,客戶端可以用它獲取訪問(wèn)令牌。這是訪問(wèn)令牌請(qǐng)求參數(shù):
| grant_type | 必須。必須被設(shè)置到授權(quán)碼中。 |
| code | 必須。被授權(quán)服務(wù)器接收到的授權(quán)碼。 |
| redirect_uri | 必須。如果請(qǐng)求URI包括在授權(quán)請(qǐng)求中,之后必須是相同的。 |
令牌響應(yīng)?訪問(wèn)令牌請(qǐng)求的響應(yīng)是包含訪問(wèn)令牌及一些更多信息的JSON字符串:
{ "access_token" : "...","token_type" : "...","expires_in" : "...","refresh_token" : "...", }access_type屬性是授權(quán)服務(wù)器分配的訪問(wèn)令牌。 token_type是被授權(quán)服務(wù)器分配的令牌類(lèi)型。 expires_in屬性是指訪問(wèn)令牌過(guò)多少秒后,就不再有效。訪問(wèn)令牌過(guò)期值是可選的。 refresh_token屬性包含令牌過(guò)期后刷新的令牌。刷新的令牌用于,一旦響應(yīng)返回的不再有效時(shí),包含一個(gè)新的訪問(wèn)令牌。
- 轉(zhuǎn)載自?并發(fā)編程網(wǎng) - ifeve.com
總結(jié)
以上是生活随笔為你收集整理的OAuth 2.0系列教程(八) 授权码授权的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Java面试题】49 垃圾回收的优点和
- 下一篇: int和Integer有什么区别?