OAuth2.0簡單說就是一種受權的協議,OAuth2.0在客戶端與服務提供商之間,設置了一個受權層(authorization layer)。客戶端不能直接登陸服務提供商,只能登陸受權層,以此將用戶與客戶端區分開來。而後客戶端在登陸時候不使用帳號密碼,而是使用會自動過時的令牌tokenhtml
定義比較難理解,能夠舉個例子,假如咱們要登陸豆瓣網,能夠你是沒帳號的,又不想註冊,而後這時候能夠用QQ登陸,登陸時候會轉跳到QQ登陸頁面,這個就是QQ就是一個認證服務器,豆瓣是服務提供商,也能夠說是資源服務器git
(A)打開客戶端,重定向,請求給予受權。服務器
(B)用戶開始給予客戶端受權url
(C)客戶端使用得到的受權,向認證服務器申請令牌。code
(D)客戶端拿受權碼去認證服務器認證,確認提供贊成發放令牌。htm
(E)認證經過,客戶端使用令牌,向資源服務器申請獲取資源。blog
(F)資源服務器確認令牌無誤,贊成向客戶端開放資源。token
OAuth2.0受權方式:圖片
通常認證受權過程須要的參數:ci
其實總結一下,Oauth2.0用受權碼方式,無非就是用戶訪問客戶端就直接重定向到認證服務器,而後輸入帳號密碼等等經過驗證後,認證服務器會重定向到redirect_uri並將受權碼附在url上,而後再拿受權碼去認證,認證經過發放令牌,登陸成功
參考資料:
http://www.rfcreader.com/#rfc6749_line1019
http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html