您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關SpringBootSecurity中OAuth2.0的其它模式是怎樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
前面介紹了授權碼模式和刷新令牌兩種獲取最新令牌的方法,下面來看一下其它模式。首先看密碼模式,我們默認配置的三種模式中其實就包含密碼模式的支持:
因此我們啟動項目,直接使用密碼模式即可,訪問地址是:
http://ip:port/oauth/token
參數有五個,分別是:
grant_type:密碼模式值必須為 password
username:用戶名
password:密碼
client_id:客戶端id
client_secret:客戶端秘鑰
訪問示例如下:
密碼模式適用于用戶高度信任的情況,只有高度信息才能傳用戶名密碼,謹慎使用。
有些web應用是純前端的應用,需要允許授權服務直接向前端頒發令牌。這種方式沒有授權碼這個中間步驟,所以稱為(授權碼)"隱藏式"(implicit)。訪問鏈接示例如下:
http://localhost:8028/oauth/authorize?client_id=clientId&response_type=token&redirect_uri=http://localhost:8028/&scope=all
可以看到這種方式比授權碼模式多了一個scope參數,在使用隱藏模式之前,需要授權服務支持隱藏模式,就需要在授權類型中加上 implicit:
然后將上面的鏈接輸入到瀏覽器,會出現登錄頁面,登錄成功后,鏈接中會直接出現令牌:
注意,令牌的位置是 URL 錨點(fragment),而不是查詢字符串(querystring),這是因為 OAuth 2.0 允許跳轉網址是 HTTP 協議,因此存在"中間人攻擊"的風險,而瀏覽器跳轉時,錨點不會發到服務器,就減少了泄漏令牌的風險。
最后一種方式是憑證式(client credentials),適用于沒有前端的命令行應用,即在命令行下請求令牌。請求地址如下:
http://localhost:8028/oauth/token?grant_type=client_credentials&client_id=clientId&client_secret=secret
請求前,先在授權類型中配置憑證模式:
請求結果示例:
這種方式給出的令牌,是針對第三方應用的,而不是針對用戶的,即有可能多個用戶共享同一個令牌。
關于SpringBootSecurity中OAuth2.0的其它模式是怎樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。