facebook - node.js - everyuth - Facebook API 和 session 处理

标签 facebook session authentication node.js everyauth

我正在运行一个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 收到过期的 token 响应:

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

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

编辑:

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

最佳答案

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

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

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

关于facebook - node.js - everyuth - Facebook API 和 session 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8033839/

相关文章:

ios - 使用facebook登录IOS延迟查找用户的电子邮件

ios - 将 Facebook 应用链接链接到 iTunes 下载页面

asp.net - 将 ASP.NET 用户 session 限制为单个事件 session 的最佳做法是什么?

javascript - 在 nowjs 中运行不同的实例

java - 使用 JPasswordField 更改密码

objective-c - 如何从 iOS 应用程序发布到 Facebook 和 Twitter 墙

node.js - Facebook "active access token must be used"

php - 让用户在注册之前试用您的网络应用程序 : sessions or temp db?

.net - 如何在cookie中存储token?

.net - ASP.NET 根据角色拒绝访问某些页面