1. 程式人生 > >Android面試題-oauth認證協議原理

Android面試題-oauth認證協議原理

本文配套視訊

原始碼分析相關面試題

與XMPP相關面試題

與效能優化相關面試題

與登入相關面試題

與開發相關面試題

騰訊QQ第三方登入的實現原理?

Oauth當中的角色:

1.Service Provider(服務提供方):
服務提供方通常是網站,在這些網站當中儲存著一些受限制的資源,如照片、視訊、聯絡人列表等。這些網站通常使用使用者名稱和密碼來確認使用者的身份。比如新浪微博的開放平臺就是Service Provider。

2.User(使用者):
存放在服務提供方的受保護的資源的所有者。使用者持有可以登入服務提供者網站的使用者名稱和密碼。使用者不希望把自己的資源公開,但是使用者卻需要將這些資源共享給其他網站或應用程式(如使用者希望使用第三方開發的新浪微部落格戶端來訪問自己的資源,但又不希望第三方應用知道自己的使用者名稱和密碼)。

3.客戶端(Client):
要訪問服務提供方資源的第三方應用,可以是web應用程式、桌面應用程式或者是手機應用程式。客戶端需要得到授權之後才能訪問相應的資源。

Oauth的認證和授權過程:

1.使用者使用第三方的客戶端(如訪問第三方的網站,或使用第三方的應用),想對存放在服務提供者的某些資源進行操作。

2.第三方網站或應用向服務提供方請求一個臨時令牌(Request Token)。

3.服務提供方驗證第三方的身份後,授予其一個臨時令牌。

4.第三方獲得臨時令牌後,將使用者引導至服務提供方的授權頁面請求使用者授權。在這個過程中將臨時令牌和客戶端的回撥連線傳送給服務提供者。

5.使用者在服務提供者的授權頁面上輸入自己的使用者名稱和密碼,然後授權該客戶端訪問相應的資源。

6.授權成功後,服務提供方引導使用者返回第三方網站的的網頁。

7.客戶端根據臨時令牌從服務提供方那裡獲取訪問令牌(Access Token)。

8.服務提供方根據臨時令牌和使用者的授權情況授予客戶端訪問令牌。

9.客戶端使用獲取的訪問令牌訪問存放在服務提供方上的相應的資源。

Oauth簡單示意圖

Oauth全面的示意圖

  • 歡迎關注微信公眾號,長期推薦技術文章和技術視訊