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

自己实现OAUTH V1的consumer端协议的几个小总结

 
阅读更多
by alex

params要排序, 对于java, 有个treemap天生支持排序, 直接把params的kv对put进去, 然后顺序遍历即可, 现在是一个网站有一个网站的标准, 名以上是OAUTH1实际上支持的五花八门。

base str的构造:

method + & + urlencode(url) + & + urlencode(querystring)

签名时候的一定要注意, consumerSecret的构造, req_token的时候, 密钥是consumerSecret + &, acc_token的时候, 密钥是consumerSecret + & + token_secret

有的需要verifyCode,有的不需要, 有的是别的名字一个原理。

对于HTTP HEADER验证方式的OAUTH1 PROVIDER要求:

header里增加Authorization字段, 该字段对应的值为:

OAuth realm="http://xxxxxx/", a="a", b="b"

类似如此, 注意是要双引号的,对于querystring方式的,不解释。

对于oauth_callback这个参数, 先做urlencode, 然后往参数列表加,对于某些平台, 提交过去后这个参数基本上是两遍urlencode。当然具体情况具体对待。

另外, Content-Type:application/x-www-form-urlencoded
加个Accept-Encoding, UTF-8, 有平台根据这个决定返回的编码。有平台根据私有参数, 还有平台压根不给你指定的机会直接UTF-8返回。

各种情况都要考虑到。
分享到:
评论

相关推荐

    纯java实现的OAuth2流程

    在这个"纯Java实现的OAuth2流程"中,我们将深入探讨如何不依赖Spring Boot来独立构建OAuth2的客户端和服务端。 首先,我们要理解OAuth2的基本流程,它通常包括四个角色:资源所有者(Resource Owner)、资源服务器...

    jmeter 实现oauth1.0授权认证

    - 定义变量:URL、realm、oauthToken、oauthTokenSecret、oauthConsumerKey、oauthConsumerSecret、deploy、script、oauthNonce、oauthTimestamp。 - 使用`UUID.randomUUID().toString()`生成随机的oauthNonce。 ...

    OAuth2.0协议中文版

    OAuth 2.0 协议的缺点主要体现在以下几个方面:OAuth 2.0 协议的实现需要一定的技术门槛,让一些开发者感到困惑;OAuth 2.0 协议的安全机制需要时刻监控和维护,否则可能会出现安全问题。 OAuth 2.0 协议的应用场景...

    OAuth2.0协议原理与实现

    OAuth2.0协议的核心在于实现了一个安全的三方授权流程,允许第三方应用在获取用户明确授权的情况下访问用户存储在资源服务器上的受保护资源。 #### 二、OAuth2.0的应用场景——第三方登录 在日常生活中,我们经常...

    java实现oauth2.0服务端+客户端(含JWT)

    总结来说,这个项目涵盖了OAuth 2.0授权框架的实现,包括服务端和客户端,利用了Apache OLTU库,同时结合MD5进行数据加密,以及JWT进行安全的身份验证。通过这个项目,开发者可以深入理解OAuth 2.0的工作原理,并...

    OWIN实现OAuth 2.0 之客户端模式(Client Credential)

    那么我就可以利用OWIN实现OAuth 2.0 之客户端模式的基本原理生成一个token,你会发现我这个token居然能够访问你们公司的资源服务。所以如果我们使用OWIN实现OAuth 2.0 之客户端模式,尽量保证两点: (1)增加...

    OAuth2.0协议中文版.pdf

    OAuth2.0是OAuth协议的延续版本,但不向前兼容OAuth 1.0(即完全废止了OAuth1.0)。 OAuth 2.0关注客户端开发者的简易性。要么通过组织在资源拥有者和HTTP服务商之间的被批准的交互动作代表用户,要么允许第三方应用...

    cas3.5.0集成oauth2.0协议

    1. **配置OAuth2.0服务**:在CAS服务器端,需要配置OAuth2.0的相关参数,如客户端ID、客户端密钥、授权端点、令牌端点等,以支持OAuth2.0协议。 2. **创建OAuth2.0客户端**:在第三方服务(如微博)上注册应用,...

    oauth jersey实现例子

    在这个"oauth jersey实现例子"中,我们将探讨如何结合OAuth和Jersey构建安全的RESTful API。 首先,OAuth的核心概念包括资源所有者(Resource Owner)、客户端(Client)、授权服务器(Authorization Server)和...

    JAVA服务端和客户端功能实现 OAuth2.0

    在实现OAuth2.0的过程中,需要注意以下几个关键点: 1. 安全性:令牌应采用安全的算法生成,如JWT(JSON Web Tokens),并确保通信过程使用HTTPS加密。 2. 令牌过期:设置合理的令牌有效期,防止长期有效令牌被滥用...

    完整Oauth 2.0实现实例

    通过这个完整的 OAuth 2.0 实例,你可以了解到如何在 Java 环境下实现这一授权框架,并且能够应用于实际的开发项目中。文件名“oauthWeb”可能指的是包含整个 Web 应用的源代码,其中包含了 OAuth 2.0 相关的配置和...

    Java的oauth2.0 服务端与客户端的实现(源码)

    在`oauthserver`项目中,我们通常会配置以下几个核心组件: - **Authorization Endpoint**:用户在此处授权应用访问其资源。 - **Token Endpoint**:客户端通过此接口获取访问令牌。 - **Resource Owner Password ...

    OAuth2.0代码模拟实现

    在"OAuth2.0代码模拟实现"项目中,我们看到两个服务器端项目——"wx-server"和"zking-server",以及一个名为"pom.xml"的文件,这通常表示项目是基于Maven构建的Java应用。下面我们将深入探讨OAuth2.0的实现细节以及...

    oauth2.0协议授权

    这个协议在互联网服务中起到了关键作用,尤其是涉及到用户数据安全和隐私的场景。下面将详细介绍OAuth2.0的核心概念、流程以及如何在Java环境中实现。 **OAuth2.0核心概念** 1. **资源所有者(Resource Owner)**:...

    Ruby-OAuth2一个OAuth20协议的Ruby封装

    Ruby-OAuth2是Ruby编程语言中的一个库,用于实现OAuth 2.0协议。OAuth 2.0是一种授权框架,广泛应用于允许第三方应用安全地访问用户在其他服务上的数据,如Facebook、Google或Twitter,而无需获取用户的完整密码。...

    Oauth2实现java

    Apache Oltu是Apache基金会提供的一个针对OAuth2协议的Java实现,它为开发者提供了全面的API来处理OAuth2的授权流程。Apache Oltu支持OAuth2的四种主要授权类型:授权码(Authorization Code)、隐式(Implicit)、...

    新浪微博OAuth授权的Java实现.pdf

    新浪微博OAuth授权的Java实现是通过使用OAuth协议和相关的OAuth库来实现的。OAuth协议使用户不需要直接向第三方应用提供用户名及密码,且使一个账户在多个网站中使用成为可能。在Java平台上实现新浪微博OAuth授权...

    spring oauth 配置实现

    这个框架基于OAuth2协议,允许第三方应用在用户授权的情况下访问受保护的资源。在这个配置实现中,我们将深入探讨如何将Spring Security OAuth2集成到Spring项目中,以及如何基于数据库进行相关配置。 首先,我们...

Global site tag (gtag.js) - Google Analytics