OAuth2授權碼模式和密碼模式

授權碼模式流程

  • 客戶端請求第三方授權
  • 用戶(資源所有者)同意給客戶端授權
  • 客戶端獲取到授權碼,請求認證服務器申請令牌
  • 認證服務器向客戶端響應令牌
  • 客戶端請求資源服務器的資源,資源服務器校驗令牌合法性,完成授權
  • 資源服務器返回受保護資源

申請授權碼

http://localhost:40400/auth/oauth/authorize?client_id=XcWebApp&response_type=code&scop=app&redirect_uri=http://localhost
  • client_id:客戶端id,和授權配置類中設置的客戶端id一致。
  • response_type:授權碼模式固定爲
  • code:scop:客戶端範圍,和授權配置類中設置的scop一致。
  • redirect_uri:跳轉uri,當授權碼申請成功後會跳轉到此地址,並在後邊帶上code參數(授權碼)
    首先跳轉到登錄頁面:
    在這裏插入圖片描述
    登錄後,成功後會跳到授權頁面

授權

在這裏插入圖片描述
點擊Authorize,可以獲得授權碼

http://localhost/?code=R5A7yI

R5A7yI就是授權碼。

申請令牌

post請求:  http://localhost:40400/auth/oauth/token

添加相關參數

  • grant_type:授權類型,填寫authorization_code,表示授權碼模式
  • code:授權碼,就是剛剛獲取的授權碼,注意:授權碼只使用一次就無效了,需要重新申請。
  • redirect_uri:申請授權碼時的跳轉url,一定和申請授權碼時用的redirect_uri一致。
    在這裏插入圖片描述
    然後Authorization 選擇Basic Auth,輸入賬號密碼
    在這裏插入圖片描述

授權服務器返回token

在這裏插入圖片描述

  • access_token : 訪問令牌,客戶端攜帶此令牌請求資源服務器資源
  • token_type:有MACToken與BearerToken兩種類型,兩種的校驗算法不同,RFC6750建議Oauth2採用Bearer
  • refresh_token:刷新token,使用此令牌可以延長訪問令牌的過期時間
  • expires_in: 過期時間,單位爲秒。
  • scope:範圍,與定義的客戶端範圍一致。
  • jti:jwt的id

服務授權流程

在這裏插入圖片描述
攜帶令牌訪問服務

消息頭參數
Authorization Bearer+空格+token
在這裏插入圖片描述

密碼模式

密碼模式相比於授權碼模式:不用授權碼,可以直接用賬號密碼向授權服務器申請令牌

校驗令牌

Get:http://localhost:40400/auth/oauth/check_token?token=獲取到的token

刷新令牌

Post:http://localhost:40400/auth/oauth/token
參數
grant_type:固定爲refresh_token
refresh_token:刷新令牌(注意不是access_token,而是refresh_token)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章