91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

OAuth2.0的四種授權方式是什么

發布時間:2021-11-01 14:38:51 來源:億速云 閱讀:552 作者:iii 欄目:編程語言

這篇文章主要講解了“OAuth2.0的四種授權方式是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“OAuth2.0的四種授權方式是什么”吧!

一、OAuth3.0 為何物二、OAuth3.0 授權方式

OAuth3.0四種授權中授權碼方式是最為復雜,但也是安全系數最高的,比較常用的一種方式。這種方式適用于兼具前后端的Web項目,因為有些項目只有后端或只有前端,并不適用授權碼模式。

下圖我們以用WX登錄掘金為例,詳細看一下授權碼方式的整體流程。

OAuth2.0的四種授權方式是什么

用戶選擇WX登錄掘金,掘金會向WX發起授權請求,接下來 WX詢問用戶是否同意授權(常見的彈窗授權)。response_typecode 要求返回授權碼,scope 參數表示本次授權范圍為只讀權限,redirect_uri 重定向地址。

https://wx.com/oauth/authorize?
  response_type=code&
  client_id=CLIENT_ID&
  redirect_uri=http://juejin.im/callback&
  scope=read

用戶同意授權后,WX 根據 redirect_uri重定向并帶上授權碼。

http://juejin.im/callback?code=AUTHORIZATION_CODE

當掘金拿到授權碼(code)時,帶授權碼和密匙等參數向WX申請令牌。grant_type表示本次授權為授權碼方式 authorization_code ,獲取令牌要帶上客戶端密匙 client_secret,和上一步得到的授權碼 code

https://wx.com/oauth/token?
 client_id=CLIENT_ID&
 client_secret=CLIENT_SECRET&
 grant_type=authorization_code&
 code=AUTHORIZATION_CODE&
 redirect_uri=http://juejin.im/callback

最后 WX 收到請求后向 redirect_uri 地址發送 JSON 數據,其中的access_token 就是令牌。

 {    
  "access_token":"ACCESS_TOKEN",
  "token_type":"bearer",
  "expires_in":2592000,
  "refresh_token":"REFRESH_TOKEN",
  "scope":"read",
  ......
}

2、隱藏式

上邊提到有一些Web應用是沒有后端的, 屬于純前端應用,無法用上邊的授權碼模式。令牌的申請與存儲都需要在前端完成,跳過了授權碼這一步。

前端應用直接獲取 tokenresponse_type 設置為 token,要求直接返回令牌,跳過授權碼,WX授權通過后重定向到指定 redirect_uri

https://wx.com/oauth/authorize?
  response_type=token&
  client_id=CLIENT_ID&
  redirect_uri=http://juejin.im/callback&
  scope=read

3、密碼式

密碼模式比較好理解,用戶在掘金直接輸入自己的WX用戶名和密碼,掘金拿著信息直接去WX申請令牌,請求響應的 JSON結果中返回 tokengrant_typepassword 表示密碼式授權。

https://wx.com/token?
  grant_type=password&
  username=USERNAME&
  password=PASSWORD&
  client_id=CLIENT_ID

這種授權方式缺點是顯而易見的,非常的危險,如果采取此方式授權,該應用一定是可以高度信任的。

4、憑證式

憑證式和密碼式很相似,主要適用于那些沒有前端的命令行應用,可以用最簡單的方式獲取令牌,在請求響應的 JSON 結果中返回 token

grant_typeclient_credentials 表示憑證式授權,client_idclient_secret 用來識別身份。

https://wx.com/token?
  grant_type=client_credentials&
  client_id=CLIENT_ID&
  client_secret=CLIENT_SECRET

三、令牌的使用與更新1、令牌怎么用?

拿到令牌可以調用 WX API 請求數據了,那令牌該怎么用呢?

每個到達WX的請求都必須帶上 token,將 token 放在 http 請求頭部的一個Authorization字段里。

如果使用postman 模擬請求,要在Authorization -> Bearer Token 放入 token注意:低版本postman 沒有這個選項。

OAuth2.0的四種授權方式是什么

2、令牌過期怎么辦?

token是有時效性的,一旦過期就需要重新獲取,但是重走一遍授權流程,不僅麻煩而且用戶體驗也不好,那如何讓更新令牌變得優雅一點呢?

一般在頒發令牌時會一次發兩個令牌,一個令牌用來請求API,另一個負責更新令牌 refresh_tokengrant_typerefresh_token 請求為更新令牌,參數 refresh_token 是用于更新令牌的令牌。

https://wx.com/oauth/token?
  grant_type=refresh_token&
  client_id=CLIENT_ID&
  client_secret=CLIENT_SECRET&
  refresh_token=REFRESH_TOKEN

感謝各位的閱讀,以上就是“OAuth2.0的四種授權方式是什么”的內容了,經過本文的學習后,相信大家對OAuth2.0的四種授權方式是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安陆市| 昭平县| 会理县| 承德县| 新邵县| 吉安县| 通州市| 法库县| 桐梓县| 通江县| 铜山县| 石阡县| 海城市| 通州区| 长垣县| 沙湾县| 蓬莱市| 修文县| 贵州省| 壤塘县| 香格里拉县| 山东| 万安县| 炎陵县| 布拖县| 独山县| 天峨县| 天长市| 永年县| 黄龙县| 枝江市| 铁岭县| 奎屯市| 万载县| 论坛| 黄山市| 台南市| 资溪县| 莎车县| 抚州市| 弋阳县|