從0構(gòu)建Oauth2Server服務(wù)之Refreshing-access-tokens
刷新令牌 Refreshing-access-tokens
如何讓您的開發(fā)人員使用刷新令牌來獲取新的訪問令牌。如果您的服務(wù)隨訪問令牌一起發(fā)出刷新令牌,則您需要實(shí)現(xiàn)此處描述的刷新授權(quán)類型。
請(qǐng)求參數(shù)
訪問令牌請(qǐng)求將包含以下參數(shù)。
grant_type(必需的)
該grant_type
參數(shù)必須設(shè)置為“refresh_token”。
refresh_token(必需的)
先前頒發(fā)給客戶端的刷新令牌。
scope(選修的)
請(qǐng)求的范圍不得包括未在原始訪問令牌中發(fā)布的其他范圍。通常這不會(huì)包含在請(qǐng)求中,如果省略,服務(wù)應(yīng)該發(fā)出一個(gè)與之前發(fā)出的范圍相同的訪問令牌。
客戶端身份驗(yàn)證(如果客戶端被授予機(jī)密則需要)
通常,刷新令牌僅用于機(jī)密客戶端。但是,由于可以在沒有客戶端密碼的情況下使用授權(quán)代碼流,因此沒有密碼的客戶端也可以使用刷新授權(quán)。如果向客戶端發(fā)出了一個(gè)秘密,則客戶端必須對(duì)該請(qǐng)求進(jìn)行身份驗(yàn)證。通常,該服務(wù)將允許附加請(qǐng)求參數(shù)client_id
和client_secret
,或者接受 HTTP 基本身份驗(yàn)證標(biāo)頭中的客戶端 ID 和密碼。如果客戶端沒有密碼,則此請(qǐng)求中不會(huì)出現(xiàn)客戶端身份驗(yàn)證。
驗(yàn)證刷新令牌授予
在檢查了所有必需的參數(shù)并驗(yàn)證了客戶端(如果向客戶端發(fā)出了秘密)之后,授權(quán)服務(wù)器可以繼續(xù)驗(yàn)證請(qǐng)求的其他部分。
然后服務(wù)器檢查刷新令牌是否有效,并且沒有過期。如果刷新令牌已頒發(fā)給機(jī)密客戶端,則服務(wù)必須確保請(qǐng)求中的刷新令牌已頒發(fā)給經(jīng)過身份驗(yàn)證的客戶端。
如果一切正常,該服務(wù)可以生成訪問令牌并做出響應(yīng)。服務(wù)器可能會(huì)在響應(yīng)中發(fā)出新的刷新令牌,但如果響應(yīng)不包含新的刷新令牌,則客戶端會(huì)假定現(xiàn)有的刷新令牌仍然有效。
例子
以下是服務(wù)將接收的刷新授權(quán)示例。
POST /oauth/token HTTP/1.1 Host: authorization-server.com grant_type=refresh_token &refresh_token=xxxxxxxxxxx &client_id=xxxxxxxxxx &client_secret=xxxxxxxxxx
Response
對(duì)刷新令牌授予的響應(yīng)與發(fā)出訪問令牌時(shí)的響應(yīng)相同。您可以選擇在響應(yīng)中發(fā)出新的刷新令牌,或者如果您不包含新的刷新令牌,則客戶端假定當(dāng)前的刷新令牌將繼續(xù)有效。
以上就是從0構(gòu)建Oauth2Server服務(wù)之Refreshing-access-tokens的詳細(xì)內(nèi)容,更多關(guān)于Oauth2Server服務(wù)構(gòu)建的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
maven多模塊項(xiàng)目依賴管理與依賴?yán)^承詳解
這篇文章主要介紹了maven多模塊項(xiàng)目依賴管理與依賴?yán)^承詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12idea指定maven的settings文件不生效的問題解決
本文主要介紹了idea指定maven的settings文件不生效的問題解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06Spring?Boot中使用Redis實(shí)戰(zhàn)案例
redis作為一個(gè)高性能的內(nèi)存數(shù)據(jù)庫,如果不會(huì)用就太落伍了,之前在 node.js中用過 redis,本篇記錄如何將 redis 集成到 spring boot 中,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot中使用Redis的相關(guān)資料,需要的朋友可以參考下2023-04-04java面向?qū)ο笤O(shè)計(jì)原則之里氏替換原則示例詳解
這篇文章主要為大家介紹了java面向?qū)ο笤O(shè)計(jì)原則之里氏替換原則示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-10-10HashMap實(shí)現(xiàn)保存兩個(gè)key相同的數(shù)據(jù)
這篇文章主要介紹了HashMap實(shí)現(xiàn)保存兩個(gè)key相同的數(shù)據(jù)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06Spring?Security中如何獲取AuthenticationManager對(duì)象
有時(shí)需要使用AuthenticationManager(以下簡(jiǎn)稱Manager)對(duì)象,可是這個(gè)對(duì)象不是Bean,沒有直接保存在Spring的Bean庫中,那么如何獲取Spring Security中的這個(gè)對(duì)象呢,需要的朋友可以參考下2022-11-11IDEA運(yùn)行SpringBoot項(xiàng)目的超詳細(xì)步驟截圖
在當(dāng)前的開發(fā)中Spring Boot開發(fā)框架已經(jīng)成為主流,下面這篇文章主要給大家介紹了關(guān)于IDEA運(yùn)行SpringBoot項(xiàng)目的超詳細(xì)步驟截圖,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11