开放平台_XAuth
xAuth
XAuth也是一種OAuth的認證方法
?
結(jié)構(gòu)和流程上看XAuth是一種oauth1.0和oauth2.0的集合者
?
oauth2.0的access_token接口步驟 + oauth1.0的簽名方法
?
為什么出現(xiàn)XAuth?
?
現(xiàn)在需求是:
1 不希望有oauth1.0的三步復(fù)雜的認證流程,希望直接使用用戶名和密碼就可以完成(這對于移動設(shè)備的第三方應(yīng)用非常需要)
2 不希望取得access_token之后使用https來調(diào)用接口
3 當然最總要緊的是還要保證數(shù)據(jù)的安全性
?
那么就有一種方法:
XAuth
?
特別說明:
1 xauth最早是twitter使用的,很多人都認為是由twitter開發(fā)的xauth,后在國內(nèi)的網(wǎng)站weibo也使用了
2 xauth沒有正式成為ietf推廣的方案
3 xauth應(yīng)該是在oauth1.0出現(xiàn)推廣之后,oauth2.0出現(xiàn)之前這個階段出現(xiàn)的產(chǎn)物
4 twitter和weibo并不是允許所有的應(yīng)用都可以使用xauth,都要求第三方需要向網(wǎng)站提交申請,主要考慮到xauth的安全性和流程確實不如oauth可靠
5 xauth主要適用于非server的第三方
6 xauth的客戶端實現(xiàn)可以直接使用oauth1.0的實現(xiàn),服務(wù)器端的實現(xiàn)也只是需要在access_token的接口中多增加一個分支,因此對應(yīng)于實現(xiàn)了oauth1.0開發(fā)的第三方應(yīng)用和網(wǎng)站來說是非常容易實現(xiàn)的
?
XAuth的步驟
?
XAuth的步驟非常簡便(twitter為例):
?
1 客戶端https請求access_token
?
https://api.twitter.com/oauth/access_token
?
oauth_consumer_key - JvyS7DO2qd6NNTsXJ4E7zA?//appkey,應(yīng)用申請時候獲得
oauth_consumer_secret - 9z6157pUbOBqtbm0A0q4r29Y2EYzIHlUwbF4Cl9c //secrect 應(yīng)用申請時獲得
oauth_nonce - 6AN2dKRzxyGhmIXUKSmp1JcB4pckM8rD3frKMTmVAo //防重放唯一數(shù)
oauth_signature_method - HMAC-SHA1 //加密算法
oauth_timestamp – 1284565601//時間戳
oauth_version - 1.0 //oauth版本
x_auth_mode - client_auth //xauth的標志
x_auth_password - twitter //用戶密碼
x_auth_username – testuser //用戶名
?
注:其中的簽名方法是和oauth1.0一樣的,所以客戶端的實現(xiàn)可以直接使用各大網(wǎng)站oauth1.0已有的框架和SDK(我認為這是導(dǎo)致xauth出現(xiàn)的原因之一)
?
這步和oauth2.0的username-password一樣,但是簽名和參數(shù)設(shè)置又是和oauth1.0一樣
?
2 服務(wù)器端接收到xauth請求
a 使用oauth1.0的簽名方式驗證
b 驗證用戶名和密碼
c 生成access_token,和secret
d 直接將access_token和secrect返回給客戶端
?
3 客戶端得到access_token和secret后直接使用oauth1.0的流程請求接口
?
?
?
參考資料:
http://open.weibo.com/wiki/XAuth
https://dev.twitter.com/docs/oauth/xauth
http://yourhead.tumblr.com/post/428643811/five-things-you-didnt-know-about-xauth
http://aralbalkan.com/3057
http://xauth.org/spec/
?
作者:yjf512(軒脈刃)
出處:http://www.cnblogs.com/yjf512/
本文版權(quán)歸yjf512和cnBlog共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明?
?
總結(jié)
以上是生活随笔為你收集整理的开放平台_XAuth的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微博营销不可不知的微博六种人
- 下一篇: 如何控制Yahoo! Slurp蜘蛛的抓