看這篇博文的朋友,我建議先去了解一下什麼是 oauth 1.0 & 2.0的認證,對於,一些很基本的概念,各大提供該認證的**應該說的很清楚了,這篇博文是比較細的說下,在oauth 認證時遇到的問題,以及整個認證客戶端api呼叫的過程
我說下,目前我知道的提供oauth 認證的**(牆外的這裡就不提了),大家如果想補充的話,我非常歡迎.
oauth 1.0 || 1.0a
豆瓣 360開發者平台
網易開放平台
oauth 2.0
人人網360開發者平台
這裡,我就分享一下我使用oauth 1.0 api 的經驗
整個oauth 最麻煩的的就是構建演算法體系,豆瓣在這方面是直接給了乙個開源庫給我們參考
好了到編碼部分:
oauth 1.0a ,目前大部分的用oauth 1.0 版本認證開放平台的用的版本
用php**實現 request token 的鏈結
//從服務商獲取的
api key
$key
= 『******』;
$secret
= 『sssss』;
$callback
=』null』;
//這個在oauth 1.0標準中不強制要求,也是漏洞的所在,不過這個漏洞的成功率極低.. 在oauth1.0 a 這個引數是必須的
//生成消費方
$consumer
= new
oauthconsumer(
$key
,$secret
,$callback
);
//生成簽名用鏈結
$req_token_url
= oauthrequest::from_consumer_and_token(
$consumer
,null,」get」,
$request_token_url
);
//進行鏈結簽名
$req_token_url
->sign_request(
$sig_method
,$consumer
,null);
//列印出我們的鏈結echo $req_token_url->to_url();
//進行鏈結簽名
$req_token_url
->sign_request(
$sig_method
,$consumer
,null);
//列印出我們的鏈結
echo
$req_token_url
->to_url()
;?>
這裡還算比較簡單的,如果是
豆瓣的返回資訊:
oauth_token=******x&oauth_token_secret=******x
oauth_token=******x&oauth_token_secret=******x&oauth_callback_confirmed=true
這裡要記住的是oauth_token_secret 記得好好儲存,因為在第三步的時候是必須的!
在第二步授權完畢後
在第三步要與授權的oauth_token組成新的消費方.
這一步比較簡單…上php**
=』上一步中獲取的oauth_token』;
//以下是可選引數,成功授權後帶引數跳轉到相應頁面,具體參見服務商
//豆瓣》
$callback
//引數如有特殊字元需要urlencode ,帶鏈結的請求這步是必須的
$params
= array
();
$params
[『oauth_token』]=
$oauth_token
;
$params
[『callback』] =
$callback
;
//根據自己的需要更改.
//生成使用者授權鏈結
拷到瀏覽器就會跳轉到授權頁面
豆瓣的話,就是授權成功了
授權成功以後,如果是oauth 1.0 就十分方便..直接用第一步獲得的oauth_token 和 oauth_token_secret 組成乙個oauthtoken 新增到第一步的那個null引數裡面就可以取得那個用於獲取access token 的鏈結
如果是用豆瓣的話你只需這樣:
//從服務商獲取的api key $key = 『******』;
$secret
= 『sssss』;
// 第一步中獲得的兩個引數,確認在第二步中$oauth 獲得授權以後才能夠訪問成功
$oauth
= 『***xx』;
$oauth_secret
= 『***』;
//生成 訪問用的token
$token
= new
oauthtoken(
$oauth
,$oauth_secret
);
//生成消費方
$consumer
= new
oauthconsumer(
$key
,$secret
);
//生成簽名用鏈結
$req_token_url
= oauthrequest::from_consumer_and_token(
$consumer
,$token
,」get」,
$request_token_url
);
//進行鏈結簽名
$req_token_url
->sign_request(
$sig_method
,$consumer
,$token
);
//列印出我們的鏈結
echo
$req_token_url
->to_url();
?>
拷到瀏覽器中,你就獲取到我們用於訪問使用者資源的兩個引數oauth_token 和 oauth_token_secret,豆瓣的話還會返回使用者的id.
對於access token 的期限.
一般而言,access token 的實效一般是使用者取消授權才會失效,不過,聽說也有有時效的,這個,我得去找找是哪家
開放平台 OAuth1 0
oauth1.0簡介 oauth1.0是rfc制定的標準的第三方 客戶端的認證服務 規範文件在 使用oauth的目的是不讓第三方開發者知道和記錄使用者的使用者名稱和賬號資訊,使用者在第三方應用登入服務的時候是在客戶端提供的登入頁面進行登入和驗證的。下面以weibo的oauth1.0實現為例說明 oa...
開放平台 OAuth1 0
oauth1.0簡介 oauth1.0是rfc制定的標準的第三方 客戶端的認證服務 規範文件在 使用oauth的目的是不讓第三方開發者知道和記錄使用者的使用者名稱和賬號資訊,使用者在第三方應用登入服務的時候是在客戶端提供的登入頁面進行登入和驗證的。下面以weibo的oauth1.0實現為例說明 oa...
開放平台 OAuth1 0
oauth1.0簡介 oauth1.0是rfc制定的標準的第三方 客戶端的認證服務 規範文件在 使用oauth的目的是不讓第三方開發者知道和記錄使用者的使用者名稱和賬號資訊,使用者在第三方應用登入服務的時候是在客戶端提供的登入頁面進行登入和驗證的。下面以weibo的oauth1.0實現為例說明 oa...