【问题标题】:Can access token be longer than 255 characters?访问令牌可以超过 255 个字符吗?
【发布时间】:2015-01-27 08:11:38
【问题描述】:

当允许通过 OAuth(如 OpenID、Facebook、Twitter 等)登录时,我们将 Oath 提供者提供的访问令牌保存在 mysql 数据库中以供将来验证。在一些教程中,保存访问令牌的列是varchar(255),有些使用text。我想知道访问令牌(通过 facebook 和 twitter 等常见网站)是否超过 255 个字符,需要 text 列。我们应该考虑这种可能性吗?

【问题讨论】:

标签: authentication oauth facebook twitter-oauth facebook-oauth


【解决方案1】:

我在 Facebook 工作,对此我可以给出明确的答案。

请不要为访问令牌的存储设置最大大小。随着我们添加和删除数据以及更改它们的编码方式,我们预计它们会随着时间的推移而增长和缩小。

我们确实在一处给出了关于 255 个字符的指导。我更新了包含该信息的博客文章,并更新了我们的新访问令牌文档以包含有关大小的注释:

https://developers.facebook.com/docs/facebook-login/access-tokens/

很抱歉给您带来了困惑。

【讨论】:

  • 这应该是公认的答案 - 只是遇到了一个问题,数据库列是 varchar(255) 并获得了一个 260 个字符的 Facebook OAuth 令牌。
【解决方案2】:

根据我的经验,您不会遇到 Facebook 或 Twitter 的问题(在 3 年多的时间里,在我的系统上存储它的长度为 255 对我来说没有问题)。也就是说,快速搜索确实在 Quora 上提出了这个问题http://www.quora.com/OAuth-1/Whats-the-maximum-length-of-an-OAuth-access-token-key-secret-pair

这个答案非常陈旧且不正确。看看最新的答案。不要限制访问令牌的大小。

【讨论】:

  • 您必须在 quora 上注册,才能阅读他们的答案。那里的答案的精髓是什么?
  • 说真的,您还不如链接到 Expert's Exchange。 Quora 回答的要点是:规范中没有包含长度;您不应该明确限制您将接受的令牌的大小;在 quora 回答时,雅虎的令牌大约有 400 个字符;在不同的 quora 回答时,facebook 的令牌大约有 344 个字符。
【解决方案3】:

这似乎过时了...Facebook 现在可以发送超过 255 个字符的令牌,至少是 60 天的令牌(那些替代离线访问的令牌)。

你检查过这个related question吗?

【讨论】:

  • 我同意,我们遇到了这个问题,他们最近(上周)才开始发布更大的 ID。
  • 是的,搞砸了我的数据库... xD
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
  • 1970-01-01
  • 1970-01-01
  • 2015-06-24
  • 2012-03-07
  • 2020-05-02
相关资源
最近更新 更多