收到访问令牌后如何解释 oauth expires=4 位代码
Posted
技术标签:
【中文标题】收到访问令牌后如何解释 oauth expires=4 位代码【英文标题】:How to interpret the oauth expires=4 digit code upon receiving access token 【发布时间】:2011-05-16 14:10:46 【问题描述】:在我的应用程序中,某些点击需要生成 facebook 帖子。如果我没有访问令牌,我会弹出 facebook 登录屏幕。
在收到访问令牌后,我最后还会收到一个“expires=4 位数”。
例如过期=3994
4 位代码是什么意思?
访问令牌过期的时间(以秒为单位)吗?
或者是访问令牌过期的滴答数。
我看到一些 facebook api 代码需要 12 位过期代码,但我只收到 4 位。
我需要知道访问令牌是否已过期的原因是我不希望我的帖子失败,并且希望在它已过期时弹出登录屏幕。
【问题讨论】:
【参考方案1】:它是到期时间之前的秒数。即
3994 / 60 / 60 =~ 1 hour
如果您看到更多数字(尤其是在画布访问链接上),它可能是一个 Unix 时间戳,您可以轻松地将其转换为秒。您也可以使用以下范围来获取未过期的令牌(但它会在授权弹出窗口中显示附加警告):
scope=offline_access
在我的项目 (http://www.nbusy.com/projects/communicator) 中,我使用类似下面的方法来了解令牌的到期时间:
DateTime eprityTime = DateTime.Now.AddSeconds(3994);
并将其与 DateTime.Now 进行比较,并在令牌过期时关闭会话。
【讨论】:
【参考方案2】:您最初在 signed_request 中从 Facebook 收到的令牌将在 2 小时或 7200000 毫秒或 7200 秒后过期。如果您使用以下请求扩展令牌,您将收到 5184000 秒的新过期时间,转换为 60 天。
更多关于这个答案的信息...Expiry Time of facebook access token
【讨论】:
以上是关于收到访问令牌后如何解释 oauth expires=4 位代码的主要内容,如果未能解决你的问题,请参考以下文章
如何在spring + java中添加(覆盖)oAuth2访问令牌的到期时间