node.js - everyauth - Facebook API и обработка сессий - PullRequest
2 голосов
/ 07 ноября 2011

Я запускаю серверное приложение node.js, используя everyauth для своей схемы аутентификации и пытаюсь связаться с API Facebook с моего сервера. В настоящее время я обращаюсь с этим, как только пользователь вошел в систему (через Everyauth с помощью модуля Facebook):

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 });

Сначала это работает, но через несколько минут, обычно около 10 минут бездействия, я начинаю получать ответ с токеном с истекшим сроком действия от API Facebook:

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

После прочтения некоторых документов Facebook создается впечатление, что большинство маркеров доступа должны работать в течение 2 часов по умолчанию, поэтому мне интересно, правильно ли я формирую вызов API. Любые предложения / идеи приветствуются, спасибо!

EDIT:

Просто немного больше информации, время истечения unix, возвращаемое после вызова ошибки, действительно меньше, чем текущее время, просто не знаю, почему оно будет таким коротким. А пока я сделаю немного больше отладки ...

1 Ответ

0 голосов
/ 29 апреля 2012

Знаете ли вы, что если вы включите опцию "offline_access" в область при запросе аутентификации FB, токен доступа никогда не истечет.

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

Это может быть не идеально для вас, так как требует расширенных разрешений, но может обеспечить обходной путь.

...