首頁技術文章正文

Android+物聯(lián)網(wǎng)培訓之通過第三方登錄理解oauth2.0機制

更新時間:2017-07-02 來源:黑馬程序員Android+物聯(lián)網(wǎng)培訓學院 瀏覽量:


 

1. OAuth2.0介紹

說到第三方登錄,離不開oauth2.0,oauth2.0是“用戶認證和授權的標準”,是從oauth1.0基礎上發(fā)展來的。下圖是oauth2.0六個過程分析圖,為了分析這6個流程,下面我們通過新浪微盤授權登錄demo,詳細解析。

2. 運行新浪微盤SDK demo

運行新浪微盤(開發(fā)者網(wǎng)站)sdk demo,使用新浪微博賬號授權,

3. 分析logcat日志信息

3.1 logcat信息

       上面第2步運行demo,可以看到eclipse 的logcat打印很多信息,如下:
(1) https://auth.sina.com.cn/oauth2/authorize?
client_id=2330724462&redirect_uri=http%3A%2F%2Fvauth.appsina.com%2Fcallback1.php&display=mobile
(2)http://vauth.appsina.com/callback1.php?code=67db0ec6d0bac50253e254ff03a605fb&state=
(3) https://auth.sina.com.cn/oauth2/access_token?
client_id=2330724462&client_secret=04f81fc56cc936bfc8f0fa1cef285158&
grant_type=authorization_code&code=49ae713e40e740cdb7cf16c92ac7e2ed&
state=&redirect_uri=http%3A%2F%2Fvauth.appsina.com%2Fcallback1.php
 
下面,我們一步步分析上面logcat信息。

3.2 打開H5授權頁面

將上面第1步網(wǎng)址拷貝到瀏覽器,發(fā)現(xiàn)其實就是打開授權頁面,如下圖(瀏覽器的開發(fā)者視圖顯示的效果):

3.3 授權回調

在3.2的頁面中輸入新浪微博賬號和密碼,授權登錄,發(fā)現(xiàn)跳轉到下面的頁面,這個頁面就是3.1中l(wèi)ogcat信息的第2條,其實就是打開授權回調頁面:

3.4 獲取token

3.1中第3條logcat信息,其實就是調用接口,傳入3.3獲取的參數(shù)code值,獲取access_token,這個步驟我們可以通過Firefox瀏覽器的RESTClient接口測試插件來分析,如下:可以看到服務器返回access_token
 

4. 分析OAuth2.0六個流程

上面分析了logcat的信息,現(xiàn)在我們再來看看OAuth2.0六個步驟:
4.1 六個角色
分析6個流程前,我們首先熟悉幾個角色:
Client:客戶端,這里指的是新浪微盤SDK demo;
Resource Owner:資源擁有者,這里指的是授權登錄賬戶;
Authorization Server:授權服務器,這里指的是新浪的服務器;
Resource Server:資源服務器,提供資源發(fā)服務器,這些資源比如用戶名、相冊等,這里的資源服務器指的是新浪服務器。

4.2 OAuth2.0六個流程

如上圖:
A:客戶端發(fā)起授權請求,其實就是打開一個授權頁面(3.1中的1);
B:用戶(資源擁有者)授權后,跳轉回調頁,回傳code值(3.1中的2)。
C:發(fā)起授權請求,獲取access_token,其實就是使用B中的code,調用接口(3.1中的3)獲取access_token。
D:授權服務器驗證,如果通過返回access_token,詳見3.4。
E:使用獲得access_token申請獲取資源,比如我們可以獲取用戶信息,如下:
      
https://api.weipan.cn/2/account/info?access_token=3a71ce6665v5t4K2xJtU236L9Vfce151
 
F:資源服務器返回資源,如下圖返回用戶信息:

 
以上就是OAuth2.0的6個流程。


本文版權歸黑馬程序員Android培訓學院所有,歡迎轉載,轉載請注明作者出處。謝謝!
作者:黑馬程序員Android+物聯(lián)網(wǎng)培訓學院
首發(fā):http://android.itheima.com
分享到:
在線咨詢 我要報名
和我們在線交談!