• 开放平台_XAuth


    xAuth

    XAuth也是一种OAuth的认证方法

    结构和流程上看XAuth是一种oauth1.0oauth2.0的集合者

    oauth2.0access_token接口步骤 + oauth1.0的签名方法

    为什么出现XAuth?

    现在需求是:

    1 不希望有oauth1.0的三步复杂的认证流程,希望直接使用用户名和密码就可以完成(这对于移动设备的第三方应用非常需要)

    2 不希望取得access_token之后使用https来调用接口

    3 当然最总要紧的是还要保证数据的安全性

    那么就有一种方法:

    XAuth

    特别说明:

    1 xauth最早是twitter使用的,很多人都认为是由twitter开发的xauth,后在国内的网站weibo也使用了

    2 xauth没有正式成为ietf推广的方案

    3 xauth应该是在oauth1.0出现推广之后,oauth2.0出现之前这个阶段出现的产物

    4 twitterweibo并不是允许所有的应用都可以使用xauth,都要求第三方需要向网站提交申请,主要考虑到xauth的安全性和流程确实不如oauth可靠

    5 xauth主要适用于非server的第三方

    6 xauth的客户端实现可以直接使用oauth1.0的实现,服务器端的实现也只是需要在access_token的接口中多增加一个分支,因此对应于实现了oauth1.0开发的第三方应用和网站来说是非常容易实现的

    XAuth的步骤

    XAuth的步骤非常简便(twitter为例):

    1 客户端https请求access_token

    https://api.twitter.com/oauth/access_token

    oauth_consumer_key - JvyS7DO2qd6NNTsXJ4E7zA //appkey,应用申请时候获得

    oauth_consumer_secret - 9z6157pUbOBqtbm0A0q4r29Y2EYzIHlUwbF4Cl9c //secrect 应用申请时获得

    oauth_nonce - 6AN2dKRzxyGhmIXUKSmp1JcB4pckM8rD3frKMTmVAo //防重放唯一数

    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一样的,所以客户端的实现可以直接使用各大网站oauth1.0已有的框架和SDK(我认为这是导致xauth出现的原因之一)

    这步和oauth2.0username-password一样,但是签名和参数设置又是和oauth1.0一样

    2 服务器端接收到xauth请求

    a 使用oauth1.0的签名方式验证

    b 验证用户名和密码

    c 生成access_token,secret

    d 直接将access_tokensecrect返回给客户端

    3 客户端得到access_tokensecret后直接使用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/

    本文版权归yjf512和cnBlog共有,欢迎转载,但未经作者同意必须保留此段声明 

    实时了解作者更多技术文章,技术心得,请关注微信公众号“轩脉刃的刀光剑影”

    本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名叶剑峰(包含链接http://www.cnblogs.com/yjf512/),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系

  • 相关阅读:
    Android自己主动升级框架
    一句话说清楚啥是delegate
    C#
    MySQL Community Server 5.6和MySQL Installer 5.6
    仿htc sense的弹性listView!
    双向队列(STL做法)
    余承东:未来5年中国大部分智能手机厂商消失
    P3808 【模版】AC自动机(简单版)
    P1103 书本整理
    P2580 于是他错误的点名开始了
  • 原文地址:https://www.cnblogs.com/yjf512/p/2161991.html
Copyright © 2020-2023  润新知