新浪微博OAuth授權的Java實現

2021-08-31 09:10:24 字數 1326 閱讀 8809

一、oauth協議簡介

oauth授權在各社交**中廣泛使用,該協議使使用者不需要直接向第三方應用提供使用者名稱及密碼,並且使乙個賬戶在多個**中使用成為可能,oauth協議的細節描述可參考其官方**:

目前oauth 1.0已經出了final version,即rfc 5849,oauth 2.0也已在起草中。

這篇文章中,我想用比較通俗的語言來解釋oauth協議。

oauth協議中包含了三個角色:

consumer,即第三方應用,如本人開發的應用。

現有如下場景:user想利用consumer來更新自己在service provider中的狀態,但此時service provider並不信任consumer,且user也不想把帳號和密碼告訴consumer,於是三者之間需要建立起信任關係。

consumer首先要向service provider申請一對consumer_key和consumer_secret,以此取得service provider的信任。因為user是信任service provider的,所以user與consumer間的信任關係需要借助service provider來建立。

consumer用自己的consumer_key和consumer_secret向service provider請求到一對request_token和request_token_secret,而後consumer拿上這對requesttoken,領著user去見service provider。service provider見到自己發的requesttoken,便確認consumer是值得信任的,於是把頭轉向user。如果service provider不記得user了,只要user向service provider提供使用者名稱和密碼,就能建立起信任關係。然後service provider對user說:「我很信任這個consumer,你是不是也要信任他?」,若user確認,則service provider允許consumer把user帶回去,並發給consumer乙個verifier.

回來以後,consumer拿著requesttoken和verifier又單獨去找service provider,取回來一對access_token和access_token_secret,並長期儲存。

至此,三方信任關係就建立起來了,consumer每次在service provider中更新user的狀態時,只需要提供這對accesstoken,service provider便能確定此consumer能代替user進行相應的操作。

consumer_key, consumer_secret, request_token, request_token_secret, verifier, access_token, access_token_secret

新浪微博授權

一.建立應用 2.進入我的應用 3.建立應用 二.oauth的授權流程 你所開發的應用需要的流程如下 2.得到request token後重定向使用者到服務商的授權頁面 3.如果使用者選擇授權你的應用,用request token向服務商請求換取access token 4.得到access tok...

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

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

新浪微博python下api的OAuth登陸

import webbrowser import weibopy from weibopy.auth import oauthhandler from weibopy.api import api self.u user def getauth self if len self.consumer k...