Php OAuth:存储访问令牌和密码

Php OAuth:存储访问令牌和密码,php,oauth,storage,access-token,Php,Oauth,Storage,Access Token,我们有许多客户使用我们的API为他们的网站提供动力 我在工作中开始了一次关于使用OAuth进行经过身份验证的API调用的对话。 我们将有两条腿和三条腿的水流 对于三腿流,我们仍然没有就如何存储访问令牌和密码达成共识 解决此问题的常见方法是让客户端将访问令牌和密码存储在自己的数据库中,但这是不可能的,因为客户端不想处理代码更改和实现问题 我们正在考虑的其他方案包括: 1) 将访问令牌和密码保存在cookie中 2) 在会话中保存它们 我不确定这两种方法是否都是好主意。有人有什么建议吗 谢谢。我想你

我们有许多客户使用我们的API为他们的网站提供动力

我在工作中开始了一次关于使用OAuth进行经过身份验证的API调用的对话。 我们将有两条腿和三条腿的水流

对于三腿流,我们仍然没有就如何存储访问令牌和密码达成共识

解决此问题的常见方法是让客户端将访问令牌和密码存储在自己的数据库中,但这是不可能的,因为客户端不想处理代码更改和实现问题

我们正在考虑的其他方案包括:

1) 将访问令牌和密码保存在cookie中

2) 在会话中保存它们

我不确定这两种方法是否都是好主意。有人有什么建议吗


谢谢。

我想你说的是典型的“服务提供商”、“消费者”和“用户”类型的设置。我不知道如果您的消费者(客户)拒绝进行任何更改,您是否能够实现三条腿的oAuth

会话和cookie可以用于保存令牌,但问题是需要保存令牌的是您的消费者(您的客户),而不是您。对API的调用发生在后端,因此在该范围内没有可用的实际会话或cookie。如果您只进行JavaScript调用,那么这可能会起作用,但即使这样,通常也会通过代理进行调用,以避免出现跨域脚本问题

在这两种情况下,如果令牌存储在会话或cookie中,则它们将是“临时”密钥,并且当会话或cookie过期时,用户必须重新验证。但就oAuth规范而言,这并没有什么错——只要用户不介意重新验证


您可以参考Jason提到的

,如果消费者应用程序不存储身份验证所需的令牌,则消费者应用程序不可能发出经过身份验证的请求-他们可以以任何方式存储令牌,但这是等式中需要的一部分。它可以是文件系统、memcache、数据库、内存


我看到的使用cookie存储这些信息的唯一方法是,消费者应用程序在用户浏览器中将这些令牌凭证设置为cookie,用户在每次请求时将其发送回消费者-尽管这看起来很荒谬,但消费者应用程序还是需要更改其代码来处理此问题,第二,令牌和令牌密钥将冗余地在网络和用户的浏览器中飞行,如果用户自己决定进行黑客攻击,这可能是一个安全漏洞。

我在实现三腿oauth时也遇到了同样的问题。我把我的应用程序放到网上,并使用谷歌数据存储存储访问令牌

但是,配额是用来存储数据和抛出查询的!这是使用谷歌应用程序引擎的唯一限制

关于1)将访问令牌和密码保存在cookie中

想想你的客户在网吧里,当他不清除cookies,而下一个人复制了这些信息后会发生什么


我会选择DB或PHP会话

出于安全原因,我个人害怕使用会话/Cookie,因为这是访问令牌的情况:(