国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
豆瓣 API OAuth認(rèn)證

豆瓣 API OAuth認(rèn)證

本文檔提供豆瓣API OAuth認(rèn)證的相關(guān)信息,如果你的應(yīng)用需要訪問或修改受保護(hù)的用戶數(shù)據(jù),請?jiān)敿?xì)閱讀本文檔。

為了保護(hù)豆瓣用戶的數(shù)據(jù),當(dāng)?shù)谌綉?yīng)用需要通過API訪問或修改受保護(hù)的用戶數(shù)據(jù)(例如增刪用戶收藏)時(shí),需要通過OAuth認(rèn)證機(jī)制來獲得用戶的授權(quán)。

為了方便開發(fā)人員進(jìn)行豆瓣 OAuth認(rèn)證,我們在豆瓣OAuth認(rèn)證示例項(xiàng)目中提供了常見語言環(huán)境下進(jìn)行豆瓣 OAuth認(rèn)證的示例代碼。如果你使用或參考示例項(xiàng)目中的代碼,而你對OAuth一無所知,那么你需要閱讀我們在下面提供的認(rèn)證及訪問資源流程這部分內(nèi)容。它可以幫助你理解OAuth的認(rèn)證流程,這對于理解示例項(xiàng)目中的代碼是必須的。同時(shí)你也需要閱讀常見問題部分。

如果你不打算參考我們提供的示例代碼,或者你所使用的語言不在我們提供的示例代碼中。那么在開始嘗試進(jìn)行OAuth認(rèn)證之前,你通常必須閱讀整個(gè)OAuth規(guī)范。

無論你是何種開發(fā)人員——比如你也許已經(jīng)是OAuth專家,我們都建議你閱讀常見問題部分,以避免不必要的麻煩。

如果你發(fā)現(xiàn)本文檔的某些部分難以理解,建議你閱讀OAuth規(guī)范以獲取更多信息。

另外一些可能有用的資源:

  1. 關(guān)于豆瓣API Key的更多信息請點(diǎn)擊這里
  2. 中文翻譯的OAuth文檔可以在這里找到
  3. Google-OAuth項(xiàng)目提供各種語言的OAuth庫

目錄

認(rèn)證流程及訪問資源流程

豆瓣API通過以下四個(gè)步驟來完成認(rèn)證授權(quán)并訪問或修改受限資源的流程

  1. 獲取未授權(quán)的Request Token
  2. 請求用戶授權(quán)Request Token
  3. 使用授權(quán)后的Request Token換取Access Token
  4. 使用 Access Token 訪問或修改受保護(hù)資源

獲取未授權(quán)的Request Token

通過訪問以下 URL 獲取未授權(quán)的 Request Token

http://www.douban.com/service/auth/request_token

包含的主要參數(shù)

參數(shù)意義
oauth_consumer_keyAPI Key
oauth_signature_method簽名方法,建議使用HMAC-SHA1
oauth_signature簽名值
oauth_timestamp時(shí)間戳
oauth_nonce單次值,隨機(jī)字符串,防止重放攻擊

本步驟用于簽名的secret是API Key Secret

返回值包括未授權(quán)的Request Token和對應(yīng)的Request Token Secret

請求用戶授權(quán)Request Token

獲得Request Token之后,需要請求用戶授權(quán)該Request Token

你需要將瀏覽器跳轉(zhuǎn)到如下URL(如果無法自動跳轉(zhuǎn),則需要提示用戶手工跳轉(zhuǎn))。這會是一個(gè)豆瓣上的頁面,提示用戶授權(quán)給你的應(yīng)用,以允許你的應(yīng)用訪問該用戶在豆瓣上的信息

http://www.douban.com/service/auth/authorize

跳轉(zhuǎn)后用戶會看到請求授權(quán)的頁面,用戶可以選擇同意或者拒絕授權(quán)

該請求包含如下兩個(gè)參數(shù)

參數(shù)意義
oauth_token上一步中獲得的Request Token
oauth_callback(可選)如果包含這個(gè)參數(shù),認(rèn)證成功后瀏覽器會被重定向到形如http://callback?oauth_token=ab3cd9j4ks73hf7g的url,其中oauth_token為Request Token
否則需要用戶手工通知第三方應(yīng)用以完成授權(quán)

使用授權(quán)后的Request Token換取Access Token

用戶完成授權(quán)后,第三方應(yīng)用可以通過訪問如下url,將已授權(quán)的Request Token換取Access Token。Access Token將被用于訪問或修改受限資源

http://www.douban.com/service/auth/access_token

包含的主要參數(shù)

參數(shù)意義
oauth_consumer_keyAPI Key
oauth_token第一步中獲得的Request Token
oauth_signature_method簽名方法
oauth_signature簽名值
oauth_timestamp時(shí)間戳
oauth_nonce單次值

本步驟用于簽名的secret和token secret分別為,API Key Secret和Request Token Secret

返回值包括授權(quán)的Access Token,對應(yīng)的Access Token Secret

使用Access Token訪問或修改受保護(hù)資源

獲得Access Token之后,你的應(yīng)用就可以使用該Access Token訪問或修改受保護(hù)的資源

在每次操作受保護(hù)資源時(shí),請求都必須包含以下參數(shù)

參數(shù)意義
oauth_consumer_keyAPI Key
oauth_tokenAccess Token
oauth_signature_method簽名方法
oauth_signature簽名值
oauth_timestamp時(shí)間戳
oauth_nonce單次值

本步驟用于簽名的secret和token secret分別為,API Key Secret和Access Token Secret

常見問題

關(guān)于用于簽名的Secret

在第一步獲取Request Token時(shí),需要使用API Key和API Key Secret進(jìn)行簽名。對應(yīng)到OAuth規(guī)范中,API Key對應(yīng)Consumer Key,API Key Secret對應(yīng)Consumer Key Secret。該步不需要使用Token和Token Secret——設(shè)為空字符串即可。

在第三步換取Access Token時(shí),需要使用API Key、API Key Secret、Request Token和Request Token Secret進(jìn)行簽名。其中API Key和API Key Secret的對應(yīng)不變。而Request Token和Request Token Secret對應(yīng)簽名中的Token和Token Secret

而在第四步訪問修改受限資源時(shí),需要使用API Key、API Key Secret、Access Token和Access Token Secret進(jìn)行簽名。

請注意區(qū)分三次簽名中用到的Key、Token和Secret,這是簽名不匹配的一個(gè)常見原因。

關(guān)于用戶簽名的url

簽名時(shí)需要用到將要訪問的url。例如:

    http://api.douban.com/people/sakinijino/collection

豆瓣OAuth認(rèn)證,要求對這個(gè)url進(jìn)行轉(zhuǎn)義再計(jì)算簽名,例如:

    http://api.douban.com/people/@me

需要被轉(zhuǎn)義為

    http://api.douban.com/people/%40me

再計(jì)算簽名。某些OAuth庫默認(rèn)不對url進(jìn)行轉(zhuǎn)義,你需要在傳入url之前手工進(jìn)行轉(zhuǎn)義。這是簽名不匹配的另一個(gè)原因。

關(guān)于在修改刪除受限資源時(shí)傳遞OAuth參數(shù)

OAuth規(guī)范定義了三種傳遞OAuth參數(shù)方式

  1. header中
  2. url中
  3. post form中

然而進(jìn)行POST、PUT、DELETE請求時(shí),豆瓣暫時(shí)不支持使用在url中或者post form中傳遞OAuth參數(shù)。因此你只能選擇在header中傳遞OAuth參數(shù)。格式如下:

Authorization: OAuth realm="http://sp.example.com/",    oauth_consumer_key="0685bd9184jfhq22",    oauth_token="ad180jjd733klru7",    oauth_signature_method="HMAC-SHA1",    oauth_signature="wOJIO9A2W5mFwDgiDvZbTSMK%2FPY%3D",    oauth_timestamp="137131200",    oauth_nonce="4572616e48616d6d65724c61686176",    oauth_version="1.0"

如果你發(fā)現(xiàn)豆瓣提示你沒有傳遞OAuth參數(shù)(no auth錯(cuò)誤),那么請檢查一下你是否在POST、PUT、DELETE請求中使用了url或post form傳遞OAuth參數(shù)。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Android學(xué)習(xí)筆記
OAuth 2.0安全案例回顧
這個(gè)好玩!用Python識別花卉種類,并自動整理分類!
太牛逼了!用 Python 實(shí)現(xiàn)抖音上的“人像動漫化”特效,原來這么簡單!
百度網(wǎng)盤上傳腳本bpcs_uploader
[Python]web.py連接新浪微博
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服