OAuth2.0(以美團點評招聘網站爲例)

1、介紹

OAuth(開放授權)是一個開放標準,允許用戶授權第三方應用訪問他們存儲在另外的服務提供者上的信息,而不 需要將用戶名和密碼提供給第三方應用或分享他們數據的所有內容。OAuth2.0是OAuth協議的延續版本,但不向 後兼容OAuth 1.0即完全廢止了OAuth1.0。很多大公司如Google,Yahoo,Microsoft等都提供了OAUTH認證服 務,這些都足以說明OAUTH標準逐漸成爲開放資源授權的標準。
 
Oauth協議目前發展到2.0版本,1.0版本過於複雜,2.0版本已得到廣泛應用。
 

2、舉一個栗子

當我們要訪問一個網站的時候一般都會有微信、QQ登陸。這種第三方授權登陸就是OAuth2.0要乾的活。比如美團點評的校招網站。這個是需要微信登陸的。

流程:

(1)客戶端請求第三方授權

用戶進入美團程序的登錄頁面,點擊微信的圖標以微信賬號登錄系統,用戶是自己在微信裏信息的資源擁有者。

(2)資源擁有者同意給客戶端授權

資源擁有者掃描二維碼錶示資源擁有者同意給客戶端授權,微信會對資源擁有者(我)的身份進行驗證, 驗證通過後,微信會詢問用戶是否給授權美團訪問自己的微信數據,用戶點擊“確認登錄”表示同意授權,微信認證服務器會 頒發一個授權碼,並重定向到美團的網站。

(3)客戶端獲取到授權碼,請求認證服務器申請令牌

此過程用戶看不到,客戶端應用程序請求認證服務器,請求攜帶授權碼。

(4)認證服務器向客戶端相應授權

微信認證服務器驗證了客戶端請求的授權碼,如果合法則給客戶端頒發令牌,令牌是客戶端訪問資源的通行證。 此交互過程用戶看不到,當客戶端拿到令牌後,用戶在美團看到已經登錄成功。

(5)客戶端請求資源服務器的資源

客戶端攜帶令牌訪問資源服務器的資源。 美團網站攜帶令牌請求訪問微信服務器獲取用戶的基本信息。

(6)資源服務器返回受保護的資源

資源服務器校驗令牌的合法性,如果合法則向用戶響應資源信息內容。

再來看一張圖:

 

這是官方的一張圖:

OAauth2.0包括以下角色:

(客戶端):本身不存儲資源,需要通過資源擁有者的授權去請求資源服務器的資源,比如:Android客戶端、Web客戶端(瀏 覽器端)、微信客戶端等。

(資源擁有者):通常爲用戶,也可以是應用程序,即該資源的擁有者。

(授權服務器):用於服務提供商對資源擁有的身份進行認證、對訪問資源進行授權,認證成功後會給客戶端發放令牌 (access_token),作爲客戶端訪問資源服務器的憑據。本例爲微信的認證服務器

(資源服務器):存儲資源的服務器,本例子爲微信存儲的用戶信息。 現在還有一個問題,服務提供商能允許隨便一個客戶端就接入到它的授權服務器嗎?答案是否定的,服務提供商會 給准入的接入方一個身份,用於接入時的憑據: client_id:客戶端標識 client_secret:客戶端祕鑰 因此,準確來說,授權服務器對兩種OAuth2.0中的兩個角色進行認證授權,分別是資源擁有者、客戶端。

也就是說美團點評必須要在微信那“註冊”,獲取一個cliend_id和cliend_secret。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章