`
httpclient_bd
  • 浏览: 74369 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OAUTH集成过程中一些细节问题做个笔记

阅读更多
部分第三方的网站通过oauth集成的过程中,出现的细节上的问题导致无法集成到Provider

1,参数编码问题

来自互联网

所有参数名称和值都必须根据[RFC3986]所定义的百分号机制进行转义。 保留字符集([RFC3986] section 2.3)内的不得被编码,其它的必须被编码,编码后的十六进制字符必须大写。 百分号转换前的参数名称和值的文本必须是UTF-8编码,见[RFC3629]。


非保留字符 = 字母, 数字, '-', '.', '_', '~'

2,请求字符串拼接


请求参数被收集起来,排序并串接为一个普通的字符串:

除realm以外OAuth HTTP Authorization 首部中的参数
HTTP POST请求体中的参数(content-type为application/x-www-form-urlencoded)。
HTTP GET URL中的查询部分参数(定义于 [RFC3986] section 3).
oauth_signature参数必须被排除。

参数按照以下方式正常化为一个字符串:

按照参数名字典顺序排序。同名参数按其值排序,例如:
                    a=1, c=hi%20there, f=25, f=50, f=a, z=p, z=t
已排序参数串接为一个字符串。 每个参数名后跟一个“=”字符(ASCII代码61),无论参数值是否为空。 每对参数之间用“&”字符(ASCII代码38)分开。例如:
                    a=1&c=hi%20there&f=25&f=50&f=a&z=p&z=t


3,返回含义


HTTP 400 Bad Request
Unsupported parameter
Unsupported signature method
Missing required parameter
Duplicated OAuth Protocol Parameter

HTTP 401 Unauthorized
Invalid Consumer Key
Invalid / expired Token
Invalid signature
Invalid / used nonce


总结: oauth10a的细节较多, 可以参照文档仔细对照实现。
分享到:
评论

相关推荐

    OAUTH NOTE 2015/03/02

    标题"OAUTH NOTE 2015/03/02"可能指的是在2015年3月2日记录的一份关于OAuth 2.0的笔记或文档,可能包含了当时对OAuth 2.0的理解、实现细节或者常见问题的解决方案。 描述中的“博文链接:...

    SpringSecurity笔记,编程不良人笔记

    SpringSecurity是Java领域...与SpringBoot的集成使得配置更加简洁,让开发者能更专注于业务逻辑,而无需过多关注安全细节。通过深入学习和实践,我们可以更好地掌握SpringSecurity,为我们的应用构建坚固的安全防线。

    毕业设计笔记系统后端.zip

    【标题】"毕业设计笔记系统后端.zip" 涉及到的是一个针对学生或教育领域的后端开发项目,主要用于支持毕业设计或课程设计过程中的笔记管理。在这样的系统中,用户可以创建、编辑、存储和共享他们的学习笔记,便于...

    写笔记带后端.rar

    不过,我们可以从这个描述中推断出,这个项目可能包括用户创建、编辑、查看和存储笔记的功能,并且这些功能是通过后端服务实现的。 虽然没有标签来进一步细化主题,但根据常见的技术栈,我们可以探讨一些可能涉及的...

    学习笔记(主要是传智播客)

    在"web开发笔记"中,你可以找到更多关于如何使用ASP.NET进行实际项目开发的细节,包括数据库交互、异常处理、性能优化等方面的知识。通过传智播客的学习笔记,你将能够全面了解和掌握ASP.NET的各个方面,提升你的Web...

    笔记.zip

    以下是一些可能涵盖在"笔记"中的关键知识点: 1. **编程语言**:笔记可能详细介绍了各种编程语言的基本语法、数据类型、控制结构、函数和类的用法,如Python、Java、C++或JavaScript等。 2. **数据结构与算法**:...

    狂神说笔记,个人觉得不赖

    接口也是Java中的一个重要概念,用于实现多继承和定义标准行为。 【JSON】 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Java中,可以使用org....

    2018-云笔记项目收获-word范文 (5页).pdf

    2. **大数据处理**:云笔记项目中提到了利用大数据分布式存储解决方案来应对大量笔记数据的问题。这可能涉及Hadoop、HBase或Cassandra等分布式存储系统,它们能处理PB级别的数据,并提供高可用性和水平扩展性。 3. ...

    Android-Orgzly用于记笔记和管理待办事项列表的大纲

    对于Android开发者来说,深入研究源代码,可以学习到如何在Android平台上实现类似功能,如数据存储(可能使用SQLite)、UI设计(使用Material Design)、同步机制(可能采用OAuth集成云服务)等技术。 通过Orgzly,...

    第二天源码+笔记_百度百科_百度_

    在本资源中,标题"第二天源码+笔记_百度百科_百度_"暗示了这是一个关于百度百科项目的源代码和相关学习笔记的集合。这通常意味着我们可以期待找到与创建、编辑或维护百度百科页面相关的编程代码和解释性笔记。百度...

    笔记本论坛数据库,体系结构,详细设计说明书

    设计过程中,需要考虑数据的一致性、完整性和安全性,确保论坛数据的正确存储和检索。 接着,"体系结构设计说明书"涵盖了系统的整体布局,如前端用户界面、后端服务器、数据库服务器的交互方式,以及可能采用的技术...

    《深入理解Spring Cloud与微服务构建》学习笔记(七)

    在本篇《深入理解Spring Cloud与微服务构建》的学习笔记中,我们将重点探讨Spring Boot如何与Swagger2结合,以构建一套完整的在线API文档系统。Swagger2是一个强大的工具,它允许开发者通过注解来描述RESTful API,...

    笔记

    在IT行业中,笔记是一种非常重要的学习和工作工具。它可以帮助我们整理思维,记录技术细节,以便于日后回顾和查阅。"Note-master"这个名字暗示这可能是一个关于笔记管理或笔记应用的项目,或者是个人或团队用来组织...

    java-squid-2.0.zip

    \n\n了解了这些内容后,开发者可以开始探索Spring Social Evernote的实现细节,将其整合到自己的应用程序中,为用户提供方便的Evernote服务接口。同时,通过Java Squid 2.0,可以进一步优化应用程序的网络性能和安全...

    changgou:畅购商城项目笔记源码学习

    "畅购商城项目笔记源码学习"是一个针对电商系统开发的学习资源,主要聚焦于"畅购商城"这一开源系统。这个项目提供了丰富的实践材料,帮助开发者深入理解电商平台的架构、功能实现以及技术选型。接下来,我们将详细...

    calendar-note-server:日历笔记

    这个项目旨在提供一个集成了日历管理和笔记记录功能的平台,用户可以方便地在特定日期上添加、查看和编辑笔记。Python作为服务器端语言,因其丰富的库支持和易读性而被广泛用于Web开发。 1. **Python Web框架**:...

    小笔记

    "小笔记"是一款开源的个人记事应用,其源代码位于名为"tinynotes-master"的压缩包中。这个项目可能是一个轻量级的笔记管理软件,旨在提供简单、快捷的方式来记录、组织和检索个人的想法和信息。由于没有具体的描述,...

    day06_API01.zip

    在这个压缩包中,我们可能找到有关API开发、使用、测试以及最佳实践的相关材料。 【描述】"day06_API01" 仅提供了日期和课程编号,没有具体细节。这可能意味着这个压缩包包含的是系列教程的一部分,重点可能放在API...

    基于java的美食网站的设计与实现(1)2.zip

    9. **文档与源码**:压缩包内的"a.txt"可能包含项目介绍、开发笔记或者代码注释,而"11182源码"则是实际的Java源代码,提供了实现上述功能的具体细节。 通过分析这个项目,我们可以学习到如何使用Java进行Web开发,...

    renren-security轻量级权限管理系统 v5.3.0.zip

    在版本5.3.0中,我们可以期待一些重要的更新和改进,这些通常包括性能优化、新功能的添加、已知问题的修复以及对现有功能的增强。具体细节可能包括: 1. **角色与权限管理**:renren-security提供了基于角色的权限...

Global site tag (gtag.js) - Google Analytics