oauth簡單使用

2021-09-21 09:42:38 字數 4034 閱讀 9058

理解oauth 2.0

大致流程

(a)使用者訪問客戶端,後者將前者導向認證伺服器。

(b)使用者選擇是否給予客戶端授權。

(c)假設使用者給予授權,認證伺服器將使用者導向客戶端事先指定的"重定向uri"(redirection uri),同時附上乙個授權碼。

(d)客戶端收到授權碼,附上早先的"重定向uri",向認證伺服器申請令牌。這一步是在客戶端的後台的伺服器上完成的,對使用者不可見。

(e)認證伺服器核對了授權碼和重定向uri,確認無誤後,向客戶端傳送訪問令牌(access token)和更新令牌(refresh token)。

引數含義

response_type:表示授權型別,必選項,此處的值固定為"code"

client_id:表示客戶端的id,必選項

redirect_uri:表示重定向uri,可選項

scope:表示申請的許可權範圍,可選項,本例中無

state:表示客戶端的當前狀態,可以指定任意值,認證伺服器會原封不動地返回這個值,本例中無

<

dependency

>

<

groupid

>org.apache.oltu.oauth2

groupid

>

<

artifactid

>org.apache.oltu.oauth2.resourceserver

artifactid

>

<

version

>$

version

>

dependency

>

<

dependency

>

<

groupid

>org.apache.oltu.oauth2

groupid

>

<

artifactid

>org.apache.oltu.oauth2.authzserver

artifactid

>

<

version

>$

version

>

dependency

>

<

dependency

>

<

groupid

>org.apache.oltu.oauth2

groupid

>

<

artifactid

>org.apache.oltu.oauth2.client

artifactid

>

<

version

>$

version

>

dependency

>

/**

* 獲取授權碼-服務端

//2.生成授權碼

string authcode = null

; string responsetype =oauthrequest.getparam(oauth.oauth_response_type);

//responsetype僅支援code和token

* 獲取訪問令牌

//2.檢查客戶端安全key是否正確

if (!lightuserresult.getclientsecret().equals(tokenrequest.getclientsecret()))

//3.檢查授權碼是否正確

string authcode =tokenrequest.getparam(oauth.oauth_code);

//檢查驗證型別,此處只檢查authorization_code型別,其他的還有password或refresh_token

if (!tokenrequest.getparam(oauth.oauth_grant_type).equals(granttype.authorization_code.tostring()))

}//4.生成訪問令牌access token

oauthissuer oauthissuer = new oauthissuerimpl(new

md5generator());

final string accesstoken =oauthissuer.accesstoken();

//將訪問令牌加入快取:accesstoken-username

redisutil.getredis().set(accesstoken, lightuserresult.getusername());

//5.生成oauth響應

new responseentity("驗證成功", httpstatus.valueof(httpservletresponse.sc_ok));

}

oauth簡單使用

理解oauth 2.0 大致流程 a 使用者訪問客戶端,後者將前者導向認證伺服器。b 使用者選擇是否給予客戶端授權。c 假設使用者給予授權,認證伺服器將使用者導向客戶端事先指定的 重定向uri redirection uri 同時附上乙個授權碼。d 客戶端收到授權碼,附上早先的 重定向uri 向認證...

OAuth系列之簡單理解OAuth 2 0(二)

oauth 2.0 是目前最流行的授權機制,用來授權第三方應用,獲取使用者資料。例如 大型的居民小區 小區有門禁系統 進入的時候需要輸入密碼,那麼問題來了 有沒有一種辦法,讓快遞員能夠自由進入小區,又不必知道小區居民的密碼,而且他的唯一許可權就是送貨,其他需要密碼的場合,他都沒有許可權?於是,需要設...

簡單介紹 Oauth2 0 原理

有兩家網際網路企業 a 和 b,其中 b 是一家提供相片雲儲存的公司。使用者可以把相片上傳到 b 上長期儲存,然後可以在不同的裝置上檢視。某一天,a 和 b 談成了一項合作 希望使用者在使用 a 時,也可以 他在 b 的相片。這個技術上要怎麼實現呢?選項一 由 b 提供乙個介面 get photos...