【问题标题】:node.js - everyauth - Facebook API & session handlingnode.js -everyauth - Facebook API 和会话处理
【发布时间】:2011-12-23 10:43:07
【问题描述】:

我正在运行一个 node.js 服务器应用程序,使用 everyauth 作为我的身份验证方案,并尝试从我的服务器访问 Facebook API。一旦用户登录(通过使用 Facebook 模块的everyauth),我目前处理此问题的方式是:

var oauth = everyauth.facebook.oauth;
oauth.get('https://api.facebook.com/method/fql.multiquery?format=json&queries=' + multiquery, req.session.auth.facebook.accessToken, function (err, data) { // do stuff here });

这最初有效,但在几分钟后,通常大约 10m 不活动,我开始从 Facebook API 收到过期的令牌响应:

Error validating access token: Session has expired at unix time...

在阅读了一些Facebook docs 之后,似乎大多数访问令牌应该默认持续 2 小时,所以我想知道我是否没有以正确的方式形成 API 调用。欢迎任何建议/想法,谢谢!

编辑:

再多一点信息,错误调用返回的expire unix时间确实比当前时间短,只是不知道为什么会这么短。同时我会做更多的调试......

【问题讨论】:

  • 你能否改进这篇文章的标题以描述问题而不是列出技术?

标签: facebook session authentication node.js everyauth


【解决方案1】:

您是否知道,如果在请求 FB 身份验证时在范围内包含“offline_access”选项,则访问令牌将永不过期。

http://developers.facebook.com/docs/reference/api/permissions/#extended_perms

这可能不适合您,因为它需要扩展权限,但可能会提供一种解决方法。

【讨论】:

    猜你喜欢
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 2012-12-09
    • 2014-08-05
    • 2014-09-12
    • 2011-08-31
    相关资源
    最近更新 更多