国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Oauth2詳解
1.什么是OAuth2
OAuth(開放授權(quán))是一個開放標準,允許用戶授權(quán)第三方移動應用訪問他們存儲在另外的服務提供者上的信息,而不需要將用戶名和密碼提供給第三方移動應用或分享他們數(shù)據(jù)的所有內(nèi)容,OAuth2.0是OAuth協(xié)議的延續(xù)版本,但不向后兼容OAuth 1.0即完全廢止了OAuth1.0。
2.應用場景
第三方應用授權(quán)登錄:在APP或者網(wǎng)頁接入一些第三方應用時,時長會需要用戶登錄另一個合作平臺,比如QQ,微博,微信的授權(quán)登錄。
image
原生app授權(quán):app登錄請求后臺接口,為了安全認證,所有請求都帶token信息,如果登錄驗證、請求后臺數(shù)據(jù)。
前后端分離單頁面應用(spa):前后端分離框架,前端請求后臺數(shù)據(jù),需要進行oauth2安全認證,比如使用vue、react后者h5開發(fā)的app。
3名詞說明
(1) Third-party application:第三方應用程序,本文中又稱"客戶端"(client),比如打開知乎,使用第三方登錄,選擇qq登錄,這時候知乎就是客戶端。
(2)HTTP service:HTTP服務提供商,本文中簡稱"服務提供商",即上例的qq。
(3)Resource Owner:資源所有者,本文中又稱"用戶"(user),即登錄用戶。
(4)User Agent:用戶代理,本文中就是指瀏覽器。
(5)Authorization server:認證服務器,即服務提供商專門用來處理認證的服務器。
(6)Resource server:資源服務器,即服務提供商存放用戶生成的資源的服務器。它與認證服務器,可以是同一臺服務器,也可以是不同的服務器。
4運行流程
OAuth 2.0的運行流程如下圖,摘自RFC 6749。
OAuth運行流程
(A)用戶打開客戶端以后,客戶端要求用戶給予授權(quán)。
(B)用戶同意給予客戶端授權(quán)。
(C)客戶端使用上一步獲得的授權(quán),向認證服務器申請令牌。
(D)認證服務器對客戶端進行認證以后,確認無誤,同意發(fā)放令牌。
(E)客戶端使用令牌,向資源服務器申請獲取資源。
(F)資源服務器確認令牌無誤,同意向客戶端開放資
源。
5授權(quán)模式
授權(quán)碼模式(authorization code)
簡化模式(implicit)
密碼模式(resource owner password credentials)
客戶端模式(client credentials)
5.1授權(quán)碼模式
授權(quán)碼模式(authorization code)是功能最完整、流程最嚴密的授權(quán)模式。
(1)用戶訪問客戶端,后者將前者導向認證服務器,假設用戶給予授權(quán),認證服務器將用戶導向客戶端事先指定的"重定向URI"(redirection URI),同時附上一個授權(quán)碼。
(2)客戶端收到授權(quán)碼,附上早先的"重定向URI",向認證服務器申請令牌:GET /oauth/token?response_type=code&client_id=test&redirect_uri=重定向頁面鏈接。請求成功返回code授權(quán)碼,一般有效時間是10分鐘。
(3)認證服務器核對了授權(quán)碼和重定向URI,確認無誤后,向客戶端發(fā)送訪問令牌(access token)和更新令牌(refresh token)。POST /oauth/token?response_type=authorization_code&code=SplxlOBeZQQYbYS6WxSbIA&redirect_uri=重定向頁面鏈接。
5.2簡化模式
簡化模式(implicit grant type)不通過第三方應用程序的服務器,直接在瀏覽器中向認證服務器申請令牌,跳過了"授權(quán)碼"這個步驟,因此得名。所有步驟在瀏覽器中完成,令牌對訪問者是可見的,且客戶端不需要認證。
image.png
流程步驟:
(A)客戶端將用戶導向認證服務器。
(B)用戶決定是否給于客戶端授權(quán)。
(C)假設用戶給予授權(quán),認證服務器將用戶導向客戶端指定的"重定向URI",并在URI的Hash部分包含了訪問令牌。
(D)瀏覽器向資源服務器發(fā)出請求,其中不包括上一步收到的Hash值。
(E)資源服務器返回一個網(wǎng)頁,其中包含的代碼可以獲取Hash值中的令牌。
(F)瀏覽器執(zhí)行上一步獲得的腳本,提取出令牌。
(G)瀏覽器將令牌發(fā)給客戶端。
請求URL:
GET /authorize?response_type=token&client_id=s6BhdRkqt3&state=xyz &redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1 Host: server.example.com
5.3用戶名密碼模式
密碼模式(Resource Owner Password Credentials Grant)中,用戶向客戶端提供自己的用戶名和密碼??蛻舳耸褂眠@些信息,向"服務商提供商"索要授權(quán)。在這種模式中,用戶必須把自己的密碼給客戶端,但是客戶端不得儲存密碼。這通常用在用戶對客戶端高度信任的情況下。一般不支持refresh token。
image.png
步驟說明:
(A)用戶向客戶端提供用戶名和密碼。
(B)客戶端將用戶名和密碼發(fā)給認證服務器,向后者請求令牌。
(C)認證服務器確認無誤后,向客戶端提供訪問令牌。
POST /token HTTP/1.1 Host: server.example.com Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW Content-Type: application/x-www-form-urlencoded grant_type=password&username=johndoe&password=A3ddj3w
<article class="hentry">
5.4客戶端模式(Client Credentials Grant)
指客戶端以自己的名義,而不是以用戶的名義,向"服務提供商"進行認證。嚴格地說,客戶端模式并不屬于OAuth框架所要解決的問題。在這種模式中,用戶直接向客戶端注冊,客戶端以自己的名義要求"服務提供商"提供服務,其實不存在授權(quán)問題。
客戶端模式
它的步驟如下:
(A)客戶端向認證服務器進行身份認證,并要求一個訪問令牌。
(B)認證服務器確認無誤后,向客戶端提供訪問令牌。
A步驟中,客戶端發(fā)出的HTTP請求,包含以下參數(shù):
granttype:表示授權(quán)類型,此處的值固定為"clientcredentials",必選項。
scope:表示權(quán)限范圍,可選項。
POST /token HTTP/1.1 Host: server.example.com Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW Content-Type: application/x-www-form-urlencoded grant_type=client_credentials
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
理解OAuth2.0認證與客戶端授權(quán)碼模式詳解
理解OAuth 2.0
單體應用到分布式再到微服務,用戶認證和授權(quán)機制的演進史
Spring Cloud(6):保護微服務(Security)
OAuth2 單點登錄
第 87 天:Python Web開發(fā) OAuth2.0 簡介
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服