Web應用的驗證授權(Authorization Code)

來源:互聯網
上載者:User

既然是進行微博開發,也許你會認為應該使用傳統型程式的驗證方式,但是微博是以web的形式展示在你開發的程式當中的,因而使用Web應用的驗證授權方式

授權的基本流程

(註:Client指第三方應用,Resource Owner指使用者,Authorization Server是我們的授權伺服器,Resource Server是API伺服器)


新浪支援4種Authorization Grant(也就是擷取授權的方式),分別是:授權頁方式(其中又分為Web應用和Javascript用戶端),使用者名稱密碼方式(類似於以前的xAuth),令牌重新整理方式(提供給夥伴用於處理Access Token到期的情況)


開發人員可以先瀏覽OAuth2.0的介面文檔,熟悉OAuth2的介面及參數的含義,然後我們根據應用情境各自說明如何使用OAuth2.0。 Web應用的驗證授權(Authorization Code)

基本流程


1. 引導需要授權的使用者到如下地址:

https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI


2. 如果使用者同意授權,頁面跳轉至 YOUR_REGISTERED_REDIRECT_URI/?code=CODE


3. 換取Access Token

https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE

(其中client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET可以使用basic方式加入header中)


傳回值

{ "access_token":"SlAV32hkKG", "expires_in":3600 }


4. 使用獲得的OAuth2.0 Access Token調用API


介面介紹:

Class com.weibo.net.Weibo: 1.    擷取request token

擷取request token

介面名稱

public RequestToken  getRequestToken(Context context, String key, String secret, String callback_url);

參數名稱

作用

context

傳遞應用上下文環境,用於擷取當前網路狀態,彈出對話方塊等。

key

分配給第三方用戶端的app key

secret

分配給第三方用戶端的app secret

callback_url

用於oauth authorize頁面回調的url

返回結果

RequestToken:RequestToken封裝request tokens屬性類,繼承自Token,包含oauth_token, oauth_token_secret多個屬性。

2.    擷取access token

擷取acess token

介面名稱

public AccessToken generateAcessToken(Context context, RequestToken requestToken)

參數名稱

作用

context

傳遞應用上下文環境,用於擷取當前網路狀態,彈出對話方塊等。

RequestToken

用於存取oauth token和oauth secret的token類

返回結果

AccessToken:  AccessToken封裝access tokens屬性類,繼承自Token,包含access_token, oauth_token_secret多個屬性。

3.    擷取Oauth2.0 的access token

擷取Oauth2.0 的 acess token


介面名稱

Oauth2AccessToken getOauth2AccessToken(Context context, String app_key,

            String app_secret, String usrname, String password)

參數名稱

作用

context

傳遞應用上下文環境,用於擷取當前網路狀態,彈出對話方塊等。

App_key

Client_id,第三方應用的appkey

App_secret

Client_secret,第三方應用的appsecret

Username

微博使用者名稱稱

password

微博使用者密碼

返回結果

Oauth2AccessToken:  Oauth2AccessToken封裝tokens屬性類,繼承自Token,包含access_token, oauth_token_secret多個屬性。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.