SpringBootSecurity學習(23)前后端分離版之OAuth2.0 其它模式


密碼模式

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

file

因此我們啟動項目,直接使用密碼模式即可,訪問地址是:

參數有五個,分別是:

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

  • username:用戶名

  • password:密碼

  • client_id:客戶端id

  • client_secret:客戶端秘鑰

訪問示例如下:

file

密碼模式適用於用戶高度信任的情況,只有高度信息才能傳用戶名密碼,謹慎使用。

隱藏模式

有些web應用是純前端的應用,需要允許授權服務直接向前端頒發令牌。這種方式沒有授權碼這個中間步驟,所以稱為(授權碼)"隱藏式"(implicit)。訪問鏈接示例如下:

可以看到這種方式比授權碼模式多了一個scope參數,在使用隱藏模式之前,需要授權服務支持隱藏模式,就需要在授權類型中加上 implicit:

file

然后將上面的鏈接輸入到瀏覽器,會出現登錄頁面,登錄成功后,鏈接中會直接出現令牌:

file

注意,令牌的位置是 URL 錨點(fragment),而不是查詢字符串(querystring),這是因為 OAuth 2.0 允許跳轉網址是 HTTP 協議,因此存在"中間人攻擊"的風險,而瀏覽器跳轉時,錨點不會發到服務器,就減少了泄漏令牌的風險。

憑證模式

最后一種方式是憑證式(client credentials),適用於沒有前端的命令行應用,即在命令行下請求令牌。請求地址如下:

請求前,先在授權類型中配置憑證模式:

file

請求結果示例:

file

這種方式給出的令牌,是針對第三方應用的,而不是針對用戶的,即有可能多個用戶共享同一個令牌。

代碼地址: https://gitee.com/blueses/spring-boot-security 28

本文由博客一文多發平台 OpenWrite 發布!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM