第三方登入oauth原理

2021-07-25 14:36:11 字數 1816 閱讀 4757

一、

oauth是什麼?

oauth協議為使用者資源的授權提供了乙個安全的、開放而又簡易的標準。與以往的授權方式不同之處是oauth的授權不會使第三方觸及到使用者的帳號資訊(如使用者名稱與密碼),即第三方無需使用使用者的使用者名稱與密碼就可以申請獲得該使用者資源的授權,因此oauth是安全的。同時,任何第三方都可以使用oauth認證服務,任何服

務提供商都可以實現自身的oauth認證服務

,因而oauth是開放的。

二、oauth相關術語

響應**:

http 401 unauthorized 未授權

三、oauth

認證授權流程

在弄清楚了oauth的術語後,我們可以對oauth認證授權的流程進行初步認識。其實,簡單的來說,oauth認證授權就三個步驟,三句話可以概括:

2. 獲取使用者授權的request token(使用者允許授權後服務商會返回的臨時的request 

token)

3. 用授權的request token換取access token(用臨時的request token去換取acces token)

當應用拿到access token後,就可以有權訪問使用者授權的資源了。大家肯能看出來了,這三個步驟不就是對應oauth的三個ur          l服務位址嘛。一點沒錯,上面的三個步驟

中,每個步驟分別請求乙個url,並且收到相關資訊,並且拿到上步的相關資訊去請            求接下來的url直到拿到access token。具體的步驟如下圖所示:

具體每步執行資訊如下:

a. (第三方軟體)向oauth服務提供商請求未授權的request token。向request token url發起請求,請求需要帶上引數(自我理解為param 註冊資訊)

b. oauth服務提供商同意第三方軟體的請求,並向其頒發未經使用者授權的oauth_token與對應的oauth_token_secret,並返回給(

第三方軟體)

cret)

c. (第三方軟體)向oauth服務提供商請求使用者授權的request token。向user authorization url發起請求。

d. oauth服務提供商將引導使用者授權。該過程可能會提示使用者,你想將哪些受保護的資源授權給該應用。

此步可能會返回授權的request token也可能不返回。如yahoo oauth就不會返回任何資訊給使用者。

e. request token 授權後,使用者向access token url發起請求,將上步授權的request token換取成access token。

請求的引數(request token

f. oauth服務提供商同意(第三方軟體)的請求,並向其頒發access token與對應的金鑰,並返回給(第三方軟體)。

g. (第三方軟體)就可以使用上步返回的access token訪問使用者授權的資源。

從上面的步驟可以看出,使用者始終沒有將其使用者名稱與密碼等資訊提供給使用者(第三方軟體),從而更安全。用oauth實現背景一節中的典型案例:當服務

b(列印服務)要訪問使用者的服務a(服務)時,通過oauth機制,服務b向服務a請求未經使用者授權的request token後,服務a將引導使用者在服務a的**上登入,並詢問使用者是否將服務授權給服務b。使用者同意後,服務b就可以訪問使用者在服務a上的服務。整個過程服務b沒有觸及到使用者在服務a的帳號資訊。如下圖所示,圖中的字母對應oauth流程中的字母:

oauth協議第三方登入

一.為什麼要用第三方登入?網路開放是乙個不變的趨勢,那麼不可避免的會有各種網路服務間分享內容的需要。舉個我們身邊國內的例子吧 比如人人網想要呼叫qq郵箱的聯絡人列表,現在的方法是你需要在人人網輸入你的qq號,qq密碼才能呼叫,雖然 上可能都自謂 不保留qq使用者名稱密碼 但是大家信嗎?oauth 就...

第三方登入 OAuth2 0協議

oauth的工作原理如下 step1 獲取request token step2 獲取access token step3 後續api訪問 step4 refresh token重新整理access token 舉個例子 接下來,詳細解釋其中關鍵環節。在使用者登入成功以後,跳轉到目標 指定的url ...

第三方登入 OAuth2 0協議

oauth的工作原理如下 step1 獲取request token step2 獲取access token step3 後續api訪問 step4 refresh token重新整理access token 舉個例子 接下來,詳細解釋其中關鍵環節。在使用者登入成功以後,跳轉到目標 指定的url ...