日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

腾讯微博Android客户端开发——OAuth认证介绍

發(fā)布時(shí)間:2024/4/14 Android 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 腾讯微博Android客户端开发——OAuth认证介绍 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

騰訊微博是一個(gè)由騰訊推出,提供微型博客服務(wù)的類Twitter網(wǎng)站。在騰訊官方 的軟件或網(wǎng)站中發(fā)布微博我們需要輸入QQ號(hào)和密碼,同樣如果我們自己開發(fā)客戶端給用戶使用,我們也需要用戶提供QQ號(hào)和密碼,這就留下了安全隱患。不發(fā)分 子可以在程序中留下后門,獲取QQ號(hào)和密碼,從而進(jìn)行違法操作。為了保護(hù)QQ用戶的利益,提高微博開放平臺(tái)的安全指數(shù),騰訊微博API采用OAuth協(xié)議 為第三方提供接入服務(wù),遵循[RFC-5849]規(guī)范。目前OAuth最新版本為OAuth2.0,騰訊微博API使用OAuth 1.0A版本。OAuth官網(wǎng)地址:http://www.oauth.net/

OAuth是什么

OAuth協(xié)議為用戶資源的授權(quán)提供了一個(gè)安全的、開放而又簡易的標(biāo)準(zhǔn)。與以往的 授權(quán)方式不同之處是OAuth的授權(quán)不會(huì)使第三方觸及到用戶的帳號(hào)信息(如用戶名與密碼),即第三方無需使用用戶的用戶名與密碼就可以申請(qǐng)獲得該用戶資源 的授權(quán),因此OAuth是安全的。同時(shí),任何第三方都可以使用OAuth認(rèn)證服務(wù),任何服務(wù)提供商都可以實(shí)現(xiàn)自身的OAuth認(rèn)證服務(wù),因而OAuth是 開放的。業(yè)界提供了OAuth的多種實(shí)現(xiàn)如PHP,JavaScript,Java,Ruby等各種語言開發(fā)包,大大節(jié)約了程序員的時(shí)間,因而OAuth 是簡易的。目前互聯(lián)網(wǎng)很多服務(wù)如Open API,很多大頭公司如Google,Yahoo,Microsoft等都提供了OAuth認(rèn)證服務(wù),這些都足以說明OAuth標(biāo)準(zhǔn)逐漸成為開放資源授權(quán) 的標(biāo)準(zhǔn)。

在官方網(wǎng)站的首頁,可以看到下面這段簡介:

An open protocol to allow secure API authorization in a simple and standard method from desktop and web applications.

大概意思是說OAuth是一種開放的協(xié)議,為桌面程序或者基于BS的web應(yīng)用提 供了一種簡單的,標(biāo)準(zhǔn)的方式去訪問需要用戶授權(quán)的API服務(wù)。OAuth類似于Flickr Auth、Google's AuthSub[1]、Yahoo's BBAuth、 Facebook Auth等。

OAuth認(rèn)證授權(quán)具有以下特點(diǎn):

1. 簡單:不管是OAuth服務(wù)提供者還是應(yīng)用開發(fā)者,都很容易于理解與使用;

2. 安全:沒有涉及到用戶密鑰等信息,更安全更靈活;

3. 開放:任何服務(wù)提供商都可以實(shí)現(xiàn)OAuth,任何軟件開發(fā)商都可以使用OAuth;

OAuth的認(rèn)證流程

?

具體每步執(zhí)行信息如下:

A. 第三方軟件(我們自己開發(fā)的軟件)向OAuth服務(wù)提供商請(qǐng)求未授權(quán)的Request Token。向Request Token URL發(fā)起請(qǐng)求,請(qǐng)求需要帶上的以下參數(shù):

?

B. OAuth服務(wù)提供商同意使用者的請(qǐng)求,并向其頒發(fā)未經(jīng)用戶授權(quán)的oauth_token與對(duì)應(yīng)的oauth_token_secret,并返回給使用者:

?

C. 使用者向OAuth服務(wù)提供商請(qǐng)求用戶授權(quán)的Request Token。向User Authorization URL發(fā)起請(qǐng)求,請(qǐng)求帶上上步拿到的未授權(quán)的token與其密鑰:

?

D. OAuth服務(wù)提供商將引導(dǎo)用戶授權(quán)。該過程可能會(huì)提示用戶,你想將哪些受保護(hù)的資源授權(quán)給該應(yīng)用。此步可能會(huì)返回授權(quán)的Request Token也可能不返回。在騰訊認(rèn)證過程中此過程會(huì)定位到騰訊的授權(quán)頁面,要求用戶輸入QQ號(hào)和密碼,然后選擇同意或者拒絕對(duì)應(yīng)用授權(quán)。授權(quán)成功后客戶端 應(yīng)用會(huì)在網(wǎng)頁中給出授權(quán)碼,用戶需要手工將驗(yàn)證碼輸入到應(yīng)用中才能完成授權(quán)流程。返回參數(shù):

?

E. Request Token 授權(quán)后,使用者將向Access Token URL發(fā)起請(qǐng)求,將上步授權(quán)的Request Token換取成Access Token。請(qǐng)求的參數(shù):

?

F. OAuth服務(wù)提供商同意使用者的請(qǐng)求,并向其頒發(fā)Access Token與對(duì)應(yīng)的密鑰,并返回給使用者。

?

G. 使用者以后就可以使用上步返回的Access Token訪問用戶授權(quán)的資源。

注:Access Token和Access Token Secret永遠(yuǎn)不會(huì)過期,直到用戶撤銷應(yīng)用授權(quán)或騰訊回收您的app訪問權(quán)限才會(huì)失效。

從上面的步驟可以看出,用戶始終沒有將其用戶名與密碼等信息提供給使用者(第三方軟件),從而更安全。

OAuth相關(guān)術(shù)語

了解認(rèn)證流程后,我們順便了解下OAuth的一些術(shù)語的定義:

OAuth相關(guān)的三個(gè)URL:?

Request Token URL: 獲取未授權(quán)的Request Token服務(wù)地址;

User Authorization URL: 獲取用戶授權(quán)的Request Token服務(wù)地址;

Access Token URL: 用授權(quán)的Request Token換取Access Token的服務(wù)地址;

OAuth相關(guān)的參數(shù)定義:

oauth_consumer_key: 使用者的ID,OAuth服務(wù)的直接使用者是開發(fā)者開發(fā)出來的應(yīng)用。所以該參數(shù)值的獲取一般是要去OAuth服務(wù)提供商處注冊(cè)一個(gè)應(yīng)用,再獲取該應(yīng)用的oauth_consumer_key。

oauth_consumer_secret:oauth_consumer_key對(duì)應(yīng)的密鑰。

oauth_signature_method: 請(qǐng)求串的簽名方法,應(yīng)用每次向OAuth三個(gè)服務(wù)地址發(fā)送請(qǐng)求時(shí),必須對(duì)請(qǐng)求進(jìn)行簽名。簽名的方法有:HMAC-SHA1、RSA-SHA1與PLAINTEXT等三種。

oauth_signature: 用上面的簽名方法對(duì)請(qǐng)求的簽名。

oauth_timestamp: 發(fā)起請(qǐng)求的時(shí)間戳,其值是距1970 00:00:00 GMT的秒數(shù),必須是大于0的整數(shù)。本次請(qǐng)求的時(shí)間戳必須大于或者等于上次的時(shí)間戳。

oauth_nonce: 隨機(jī)生成的字符串,用于防止請(qǐng)求的重放,防止外界的非法***。

oauth_version: OAuth的版本號(hào),可選,其值必須為1.0。

OAuth HTTP響應(yīng)代碼:

HTTP 400 Bad Request 請(qǐng)求錯(cuò)誤

Unsupported parameter 參數(shù)錯(cuò)誤

Unsupported signature method 簽名方法錯(cuò)誤

Missing required parameter 參數(shù)丟失

Duplicated OAuth Protocol Parameter 參數(shù)重復(fù)

HTTP 401 Unauthorized 未授權(quán)

Invalid Consumer Key 非法key

Invalid / expired Token 失效或者非法的token

Invalid signature 簽名非法

Invalid / used nonce 非法的nonce

轉(zhuǎn)載于:https://blog.51cto.com/5282981/980392

總結(jié)

以上是生活随笔為你收集整理的腾讯微博Android客户端开发——OAuth认证介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。