developer:開發者,第三方應用的開發者。服務器
openPlat:開放平臺,發放App Key(至關於第三方應用的ID)、App Secret(私鑰,驗證ID是否惟一有效,須要妥善保管)。架構
Authorization Server:受權服務端,發放Code、Access Token,驗證App Key、App Secret、Code的有效性。url
Resource Server:資源服務器,驗證Access Token,提供資源的訪問接口。spa
Client:客戶端(第三方應用),發送訪問受保護資源的請求,獲取Code、Access Token。設計
Resource Owner:資源擁有者,對保護資源有訪問許可控制的實體(通常是指我的)。blog
Protected Resource:受保護的資源,可以經過OAuth2.0獲取訪問控制權的資源。接口
Authorization Code:受權碼資源
Refresh Token:刷新令牌,Access Token失效後刷新Access Token的一個標識。作用域
Access Token:訪問令牌開發
API:資源封裝爲接口對外開放,獲得訪問受權的第三方應用能夠調用API。
第三方應用在WEB提供的開放平臺註冊,提供回調地址;開放平臺生成App Key、App Secret,並返回給第三方應用。受權服務器經過App Key、App Secret、回調地址驗證第三方應用是否被受權了。
傳入的參數:
Client name:第三方應用的名稱
Callback_url:回調地址
content:介紹內容
以及第三方應用的其餘屬性。
傳出的參數:
App key:第三方應用的ID
App Secret:密鑰
收集如下參數:
Client name:第三方應用的名稱
Callback_url:回調地址
content:介紹內容
以及第三方應用的其餘屬性。
呈現第三方應用的App Key、App Secret給開發者。
受權服務器驗證用戶的憑證(通常是用戶名、密碼,受權服務器存儲了大量的用戶信息,每一個用戶都有本身的受保護的資源)有效,則給發放Code,並將Code返回給第三方應用。Code是明文傳輸。
第三方應用使用Code去換取Access Token。此時驗證第三方的ID(App Key、App Secret)、Code的有效性。
受權服務器保存已經註冊的第三方應用的App Key、App Public Secret(公鑰),經過私鑰驗證第三方應用是否已經註冊。
驗證Authorization Code是否有效。
設計兩個接口:a、獲取Code的接口;b、獲取Access Token的接口。
客戶端向資源擁有者請求受權,資源請求直接發給資源擁有者,若資源擁有者贊成該客戶端受權,則給客戶端返回一個訪問許可。
傳入的參數:
App Key
App Secret
Callback_url
返回的信息:
未登錄、微受權:跳轉到登錄頁面;
已經登錄、未受權:跳轉到受權頁面;
已經登錄、已經受權:跳轉到傳入的callback_url頁面,並返回一個訪問許可。
客戶端向用戶出示本身的私有證書和Authorization Code請求訪問令牌;受權服務器驗證客戶端的私有證書和訪問許可的有效性,驗證有效則向客戶端發送一個訪問令牌,令牌包括了做用域、有效時間以及其餘屬性。
傳入參數:
App Key:應用的ID
App Secret:第三方應用的私鑰。
Callback_url:回調url
傳出的參數:
Access Token:Access Token中包含了AppId和用戶信息UserIdd等。
獲取到Access Token
以後,就能夠向資源服務器出示Access Token,訪問受保護資源。
設計兩個頁面:a、登錄頁面;b、受權頁面
展現給資源擁有者,輸入用戶名的、密碼。登陸成功後,若是未受權,則跳轉到受權頁面;若是已經受權,直接跳轉到callback_url頁面,並返回一個訪問許可。
展現給資源擁有者,若是用戶已經受權,則直接跳轉到callback_url頁面,並返回一個訪問許可;若是未受權,則出現受權頁面,受權成功後,跳轉到callback_url,並返回一個訪問許可。