Facebook OAuth2中access_token的长度是多少?



2 Answers

随着Facebook最近转向加密访问令牌,访问令牌的长度可以达到255个字符。 如果您将访问令牌存储在数据库中,那么该列应该至少可以容纳varchar(255)。 以下是2011年10月4日Facebook开发人员博客的摘录:

“启用加密访问令牌迁移后,访问令牌的格式已经发生变化,新的访问令牌格式完全不透明,您不应该对代码中的格式有任何依赖性, varchar(255)字段将足够存储新的令牌。“

完整的博客文章在这里: https://developers.facebook.com/blog/post/572 : https://developers.facebook.com/blog/post/572

Question

我搜索谷歌和找到我的问题的答案,但我找不到一个。

我想将access_token存储到我的数据库以便离线访问,并且我想确保指定我的列的正确长度。

我甚至无法找到它是数字还是数字和字符串的混合。




The OAuth 2.0 Authorization Protocol第1.4节( draft-ietf-oauth-v2-22

基于资源服务器安全需求,访问令牌可以具有不同的格式,结构和使用方法(例如,加密属性)。 访问令牌属性以及用于访问受保护资源的方法超出了本规范的范围,并由配套规范定义。

我查找了“伴侣规格”,但没有找到任何相关的内容,并在第11.2.2节中说明

o参数名称:access_token
o参数使用位置:授权响应,令牌响应
o更改控制器:IETF
o规范文件:[[本文件]]

这似乎表明access_token参数是在此规范中定义的。 我猜的参数是,但实际访问令牌没有完全充实。

更新:规范的最新版本( draft-ietf-oauth-v2-31 )包括一个附录,它更好地定义了access_token参数

A.12。 “access_token”语法

The "access_token" element is defined in Section 4.2.2 and
Section 5.1:

  access-token = 1*VSCHAR

所以基本上这意味着access_token至少应该有一个字符长度,但本规范定义的长度没有限制。

注意它们定义了VSCHAR =%x20-7E




最近,我们的应用程序已经看到他们超过100个字符。 我仍然在寻找文档,所以我可以为他们找出一个“安全”的字段大小。




Related