溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SpringBootSecurity中OAuth2.0的其它模式是怎樣的

發(fā)布時(shí)間:2021-09-28 09:55:08 來(lái)源:億速云 閱讀:107 作者:柒染 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)SpringBootSecurity中OAuth2.0的其它模式是怎樣的,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

密碼模式

前面介紹了授權(quán)碼模式和刷新令牌兩種獲取最新令牌的方法,下面來(lái)看一下其它模式。首先看密碼模式,我們默認(rèn)配置的三種模式中其實(shí)就包含密碼模式的支持:

SpringBootSecurity中OAuth2.0的其它模式是怎樣的

因此我們啟動(dòng)項(xiàng)目,直接使用密碼模式即可,訪問(wèn)地址是:

  • http://ip:port/oauth/token

參數(shù)有五個(gè),分別是:

  • grant_type:密碼模式值必須為 password

  • username:用戶名

  • password:密碼

  • client_id:客戶端id

  • client_secret:客戶端秘鑰

訪問(wèn)示例如下:

SpringBootSecurity中OAuth2.0的其它模式是怎樣的

密碼模式適用于用戶高度信任的情況,只有高度信息才能傳用戶名密碼,謹(jǐn)慎使用。

隱藏模式

有些web應(yīng)用是純前端的應(yīng)用,需要允許授權(quán)服務(wù)直接向前端頒發(fā)令牌。這種方式?jīng)]有授權(quán)碼這個(gè)中間步驟,所以稱為(授權(quán)碼)"隱藏式"(implicit)。訪問(wèn)鏈接示例如下:

  • http://localhost:8028/oauth/authorize?client_id=clientId&response_type=token&redirect_uri=http://localhost:8028/&scope=all

可以看到這種方式比授權(quán)碼模式多了一個(gè)scope參數(shù),在使用隱藏模式之前,需要授權(quán)服務(wù)支持隱藏模式,就需要在授權(quán)類(lèi)型中加上 implicit:

SpringBootSecurity中OAuth2.0的其它模式是怎樣的

然后將上面的鏈接輸入到瀏覽器,會(huì)出現(xiàn)登錄頁(yè)面,登錄成功后,鏈接中會(huì)直接出現(xiàn)令牌:

SpringBootSecurity中OAuth2.0的其它模式是怎樣的

注意,令牌的位置是 URL 錨點(diǎn)(fragment),而不是查詢字符串(querystring),這是因?yàn)?OAuth 2.0 允許跳轉(zhuǎn)網(wǎng)址是 HTTP 協(xié)議,因此存在"中間人攻擊"的風(fēng)險(xiǎn),而瀏覽器跳轉(zhuǎn)時(shí),錨點(diǎn)不會(huì)發(fā)到服務(wù)器,就減少了泄漏令牌的風(fēng)險(xiǎn)。

憑證模式

最后一種方式是憑證式(client credentials),適用于沒(méi)有前端的命令行應(yīng)用,即在命令行下請(qǐng)求令牌。請(qǐng)求地址如下:

  • http://localhost:8028/oauth/token?grant_type=client_credentials&client_id=clientId&client_secret=secret

請(qǐng)求前,先在授權(quán)類(lèi)型中配置憑證模式:

SpringBootSecurity中OAuth2.0的其它模式是怎樣的

請(qǐng)求結(jié)果示例:

SpringBootSecurity中OAuth2.0的其它模式是怎樣的

這種方式給出的令牌,是針對(duì)第三方應(yīng)用的,而不是針對(duì)用戶的,即有可能多個(gè)用戶共享同一個(gè)令牌。

關(guān)于SpringBootSecurity中OAuth2.0的其它模式是怎樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI