xAuth

XAuth也是一种OAuth的认证方法

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

oauth2.0的access_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 twitter和weibo并不是允许所有的应用都可以使用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.0的username-password一样,但是签名和参数设置又是和oauth1.0一样

2 服务器端接收到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/

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

开放平台_XAuth相关推荐

  1. AIoT开放平台及应用

    AIoT开放平台及应用 阿里AIoT开放平台,是阿里云IoT面向开发者的能力接入渠道,开发者可以在这里完成能力的申请.开通.部署.配置和集成开发等一些列工作.这些能力并不的独立交付,而是通过关联到行业 ...

  2. 微信开放平台手机APP支付

                PHP对接APP微信支付 微信开放平台手机APP支付总结 1. 微信开放平台手机APP支付总结 支付功能链接: https://pay.weixin.qq.com/wiki/d ...

  3. 高文院士:为什么中国的AI发展必须要有开源开放平台?

    出品 | AI科技大本营(ID:rgznai100) 10 月 31 日,由北京智源人工智能研究院主办的 2019 北京智源大会在国家会议中心开幕,本次大会围绕人工智能基础研究现状及面临的机遇和挑战. ...

  4. AI一分钟|美团推出无人配送开放平台,有望提高配送效率;福特成立自动驾驶汽车公司,投资40亿美元...

    ▌福特成立福特自动驾驶汽车有限公司,投资 40 亿美元 据路透社报道,福特汽车公司表示将成立子公司福特自动驾驶汽车有限公司(Ford autonomous vehicle LLC),并预计在 2030 ...

  5. 百度AI开放平台3.0:平等赋能成为百度AI关键词

    "让每一位开发者都能平等便捷地获取AI能力是我们的愿景,也是我们的承诺.我们非常感谢各位合作伙伴.开发者使用百度的AI能力,让人们的生活更便捷.让学习更有趣.让企业管理更高效.让人类更健康. ...

  6. 第五章 业务架构,5.3 千亿访问量下的开放平台技术揭秘(作者:风胜)

    5.3 千亿访问量下的开放平台技术揭秘 前言 淘宝开放平台(open.taobao.com)是阿里系统与外部系统通讯的最重要平台,每天承载百亿级的API调用,百亿级的消息推送,十亿级的数据同步,经历了 ...

  7. cloud自动发卡平台cloudfaka_open-cloud基于springcloud、oauth2、nacos打造的微服务开放平台...

    简介 搭建基于OAuth2的开放平台.为APP端.应用服务提供统一接口管控平台.为第三方合作伙伴的业务对接提供授信可控的技术对接平台 分布式架构,统一配置中心,服务治理.fegin(RPC)内部调用, ...

  8. 开放平台架构_三步画出产品业务架构图

    今天有位同学询问,如何才能画出"高大上"的业务架构图. 他说:"最近公司要绘制XX行业的解决方案,需要产品经理画出整体架构图,但是自己没接触过,不知道如何下手." ...

  9. 北极星OKR斩获2021年阿里钉钉生态峰会开放平台年度银奖

    近日,阿里钉钉生态钉峰会(<开放共赢未来 | 2021生态伙伴钉峰会>)在杭州召开,会上钉钉发布了行业首个规模化的SaaS连接器,基于统一的数据标准,SaaS之间可天然实现数据互通,破解了 ...

最新文章

  1. shell字符串截取方法
  2. FFMPEG学习(一)---【命令行】采集视频和音频
  3. 使用C#制作简易的注册表编辑器
  4. 阿里云成为首个通过“虚拟化云平台性能测试(大规模)”的云厂商
  5. 如果你感到ETF内卷了,聪明的你要换条路
  6. php图片位置偏移代码,关于PHP的fseek()方法,究竟是什么偏移(位置)?
  7. Memcache UDP 反射放大超大规模的DDoS攻击如何防御?
  8. English写作-如何运用such as、for example、etc.、i.e.
  9. 使用int存储ip地址
  10. 解决Retrying connect to server: 192.168.x.x:8032. Already tried 0 time(s); retry policy is...
  11. iOS 权限设置判断和跳转 - 最全最详细
  12. mysql 按中文字段排序
  13. Keil5创建工程(STM32F407)
  14. 使用JavaCV实现海康rtsp转rtmp实现无插件web端直播(无需转码,低资源消耗)
  15. 4.1 人工智能的发展趋势
  16. 微立体个人年终总结计划PPT模板
  17. 【听】你会杀死那个胖子吗?功利与道德的选择
  18. Anroid11有多个Launcher应用时,默认其中一个Launcher为启动Launcher,不用弹框选择Launcher
  19. SVN创建分支 并且把分支代码合并到主干
  20. Android Studio开发环境

热门文章

  1. pwm波如何控制电机代码_PWM波控制720电机
  2. 为什么不敢和别人竞争_净空法师开示:学老实,在社会上不能跟人竞争吗? - 如是我闻佛教网...
  3. 104 规约模拟器linux,变电站自动化系统调试装置 Substation automation system debugging device...
  4. linux需要的GLIBCXX版本,linux-如果我已经安装了GLIBCXX_4.1.2,则需要GLIBCXX_3.4.9吗?
  5. python里面print是什么意思_python里print是什么意思
  6. mysql数据库的存储过程不用学吗,MySql数据库之存储过程学习_MySQL
  7. SQL:如何用一个sql统计出全校男生个数、女生个数以及总人数
  8. ActiveMQ 的独占消费模式
  9. 多线程之CountDownLatch和CyclicBarrier的区别和用法
  10. 互联网晚报 | 2月21日 星期一 | 北京冬奥会闭幕;天猫将新增菜鸟驿站送货上门服务;上汽奥迪首款电动车型开启预售...