新浪微博授權

2021-08-31 10:21:53 字數 3258 閱讀 7975

一.建立應用:

2.進入我的應用

3.建立應用

二.oauth的授權流程:

你所開發的應用需要的流程如下:

2.得到request_token後重定向使用者到服務商的授權頁面

3.如果使用者選擇授權你的應用,用request_token向服務商請求換取access_token

4.得到access_token等資訊訪問受限資源

而服務商相應的相應如下:

1.建立request_token返回給應用

2.詢問使用者是否授權此應用。如果使用者授權重定向至應用頁面。

3.建立access_token並返回給應用

4.相應受限資源請求並返回相關資訊。

通俗的說:就是你那著得到的身份證明(request_token)向服務商申請進入使用者的鑰匙(access_token),服務商詢問使用者同不同意, 如果使用者同意服務商就給你進入使用者的鑰匙(access_token),拿到鑰匙你就可以進入使用者資訊中心。

1.請求簽名

所有的oauth請求使用同樣的演算法來生成(signature base string) 簽名字元基串和簽名

base string 是把http方法名,請求url 以及請求引數用&字元連線起來後做url encode編碼。具體來講,base string由http方法名,之後是&,接著是經過url編碼之後的url和訪問路徑以及&.接下來,把所有的請求引數包括post方法中的引數,經過排序(按引數名進行文字排序,如果引數名有重複則按照數值進行重複專案排序),使用%3d代替=號,並且使用%23作為每個引數之間的分隔符,拼接成乙個字串。

這個演算法可以簡單表示為:

2.獲取request token

以下是請求用的引數:

【2.1】 oauth_request_methos-post

【2.3】oauth_callback - "使用者授權後的返回位址"

【2.5】 oauth_nonce - "隨機字串,須保證每次都不同(10位)"

【2.6】 oauth_signature_method - "hmac-sha1" /*簽名base string的方法-*/

【2.7】 oauth_timestamp - "時間戳"

【2.8】 oauth_version -"1.0" /*oauth協議版本*/

【2.9】 request_token_url -

【2.10】 authorize_url -

【2.11】 access_token_url -

2.1 將上文提到了【2.2】-【2.8】用演算法形成base string。需要注意的是callback

在url中包含請求引數, 由於引數只是callback url的一部分,所以並不需要

將其提出成為獨特的引數。url必須按照單個字串來考慮。

oauth_signature

2.3 接下來就可以想傳送請求,

生成http hearder

2.4 當伺服器端接到請求之後,會返回包含oauth_token,oauth_token_secret等內

容, 另外,oauth_callback_confirmed欄位如果為true,就表示callback生效。

這時需要記下 oauth_token和oauth_token_secret.

四。使用者認證:

這一步主要是傳送你獲取的oauth_token,並且獲得使用者的授權。一般來說,web

應用會簡單的重定向到相應的頁面,桌面應用程式會給出url並要求使用者自行驗證.

求必須以oauth作為引數,一般來說請求格式如下:

使用者授權後,web應用頁面將會重定向至你指定的oauth_callback,如果是桌面應用,將會顯示pin碼,使用者需要將pin碼輸入你的應用中來完成授權過程。

1. 獲取access token

以下是請求引數:

oauth_nonce -隨機生成字串

oauth_signature_method -hmac-sha1

oauth_token-

oauth_timestamp -時間戳

oauth-verifier-

oauth_version - 1.0

oauth-token-secret-

1.1 準備base string (使用演算法)

1.2 接著將consumer_secret 和 oauth_token_secret連線起來,中間用&分割

1.3 生成 oauth簽名

1.4 向給定的url傳送請求,請求頭一定要包含request_token(就是 access_token)

五. 獲取使用者資訊

進行使用者驗證(如果驗證成功,將會返回使用者的詳細資訊)

oauth_nonce - 隨機的字串

oauth_signature_method - hmac-sha1

oauth_token - oauth_token

oauth_timestamp - 時間戳

oauth_version - 1.0

1.1 通過演算法生成 base string

1.2 將oauth_comsumer_secret和oauth_token_secret以& 作為分隔符拼起來。將拼

接後的字串作為簽名的key 進行加密,生成簽名。

1.3 接下來就可以通過http傳送請求,生成http header

1.4 返回的即使使用者的詳細資訊。

六. 使用oauth發表微博

可以使用獲取的oauth_token和oauth_token_secret來傳送微博。傳送微博可以通過

statuses/update介面。

post body-status= 通過oauth傳送微博資訊

oauth_nonce - 隨機字串

oauth_signature_method - hmac-sha1

oauth_token -

oauth_timestamp - 時間戳

oauth_version - 1.0

1.1 通過演算法形成base string

1.2 將oauth_consumer_secret 和oauth_token_secret以&作為分割符拼起來。將拼

接後的字串作為簽名的key進行加密,生成簽名。

1.3 通過http傳送請求生成http header

1.4 得到伺服器段的響應

新浪微博OAuth授權的Java實現

一 oauth協議簡介 oauth授權在各社交 中廣泛使用,該協議使使用者不需要直接向第三方應用提供使用者名稱及密碼,並且使乙個賬戶在多個 中使用成為可能,oauth協議的細節描述可參考其官方 目前oauth 1.0已經出了final version,即rfc 5849,oauth 2.0也已在起草...

第三方授權登入 新浪微博 授權

目錄2.生成微博授權url介面 3.測試生成微博售前url介面 2.2 新增子路由 oauth urls.py from django.urls import path from import views urlpatterns 2.3 在syl settings.py中新增應用 2.4 在syl ...

新浪微博開發OAuth授權注意事項

1 關於oauth nonce 2 關於basestring basestring由http方法名 請求url 請求引數三部分組成,該三部分內容都需做url encode編碼。我們習慣把所有的請求引數oauth callback oauth consumer key oauth nonce oaut...