什么是访问令牌与访问令牌秘密和消费者密钥与消费者秘密
Posted
技术标签:
【中文标题】什么是访问令牌与访问令牌秘密和消费者密钥与消费者秘密【英文标题】:What is the Access Token vs. Access Token Secret and Consumer Key vs. Consumer Secret 【发布时间】:2015-03-19 09:28:21 【问题描述】:我使用 Oauth 已经有一段时间了,但从未完全确定这四个术语之间的区别(以及每个术语的功能)。我经常看到(例如在 Twitter Public API 中)
Consumer key:
Consumer secret:
Access token:
和
Access token secret:
字段,但我从来不知道他们到底做了什么。我知道 Oauth 能够授权应用程序(让它们代表用户行事),但我不明白这四个授权条款之间的关系,并希望得到解释。
基本上,我不确定访问令牌或令牌秘密是如何生成的,它们存储在哪里,以及它们彼此之间或与消费者密钥和秘密之间的关系。
谢谢
【问题讨论】:
这可能有助于***.com/questions/2740559/… 【参考方案1】:消费者密钥是服务提供者(Twitter、Facebook 等)向消费者(希望访问服务提供者上的用户资源的服务)颁发的 API 密钥。此密钥用于识别消费者。
消费者密码是消费者“密码”,与消费者密钥一起用于向服务提供商请求访问(即授权)用户资源。
访问令牌是服务提供者在消费者完成授权后颁发给消费者的。该令牌定义了消费者对特定用户资源的访问权限。每次消费者想要从该服务提供者访问用户数据时,消费者都会在对服务提供者的 API 请求中包含访问令牌。
希望能解决这个问题。我建议浏览oAuth 2.0 spec 的开头部分。信息量很大。
【讨论】:
我没有得到的是,在我的 twitter 应用程序中,所有这些都已经提供(这意味着我不必通过服务器进行身份验证来获取访问令牌,因为我一有用 twitter 注册了一个应用程序。我以为你说我需要在获得访问令牌之前进行身份验证? Twitter 允许您为自己(特别是您的帐户)生成访问令牌,以便您可以使用它进行测试。但是,对于使用您的应用程序的每个其他用户,只有在用户通过身份验证后才能获取访问令牌(针对该用户)。 如果您要尝试从用户的 Twitter 帐户获取信息,您是否必须让他们每次都登录/进行身份验证?您可以保存哪些信息(令牌/密钥)以供将来请求? -- 可以使用同一个Access Token/Access Secret吗? @HenSapir,我不同意您对“访问令牌秘密”的描述。我不知道这是什么意思,这不是一个标准术语,但我知道“访问令牌秘密与访问令牌一起发送”不是这种情况。它不是。只有他的访问令牌被发送。我怀疑有人在意思是“访问令牌,这是一个秘密”时写了“访问令牌秘密” 请注意,“消费者”这个词已经过时了。 OAuth 规范使用术语“客户端”。这在tools.ietf.org/html/rfc5849 的第 1.1 节中有说明【参考方案2】:有两种类型的身份验证,第一种称为身份验证,它使用使用者密钥和使用者秘密来识别此客户端并确保它是有效帐户,第二种称为授权,它允许资源服务器确定您有权对数据或我们所说的资源执行哪种操作,此操作使用访问令牌和访问令牌秘密。
有关更多详细信息,请查看来自 google 的有用幻灯片:
https://docs.google.com/presentation/d/1KqevSqe6ygWVj4U-wlarKU7-SVR79x-vjpR4gEc4A9Q/edit?pli=1#slide=id.g1697c74a_1_14
【讨论】:
以上是关于什么是访问令牌与访问令牌秘密和消费者密钥与消费者秘密的主要内容,如果未能解决你的问题,请参考以下文章
JWT 身份验证方案中的刷新令牌是不是应该使用与访问令牌不同的秘密进行签名?
Flutter (Dart 2) 访问 twitter GET api
如何使用 Postman 客户端调用 Twitter API