2012-04-22 3 views
0

Я пытаюсь создать приложение Foursquare, и я выбрал модуль Everyauth для реализации аутентификации (Connect with Foursquare).Everyauth - connect with Foursquare

Я получаю ошибку

Error: Step getAccessToken of `foursquare` module timed out. 

после того, как пользователь разрешает приложение. Вот код, я использую:

var express = require('express'), 
     util = require('util'), 
     helper = require('./helper'), 
     settings = require('./settings').appSettings, 
     everyauth = require('everyauth'); 

everyauth.foursquare 
    .entryPath('/auth/foursquare') 
    .callbackPath('/auth/foursquare/callback'); 

//everyauth.everymodule.moduleTimeout(-1); 

everyauth.foursquare 
    .appId(settings.appId) 
    .appSecret(settings.appSecret) 
    .findOrCreateUser(function (session, accessToken, accessTokenExtra, foursquareUserMetadata) { 
    util.inspect(arguments); 
    return {}; 
    }) 
    .redirectPath('/'); 

    var app = express.createServer(
     express.bodyParser() 
    , express.static(__dirname + "/public") 
    , express.favicon() 
    , express.cookieParser() 
    , express.session({ secret: '*****'}) 
    , everyauth.middleware() 
); 

app.get('/', function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/html'}); 
    res.end('<html><head></head><body><a href="' + helper.getAuthUrl() + '">Connect with Foursquare</a></body></html>'); 
}); 

everyauth.helpExpress(app); 

app.listen(4040); 
+0

Является ли пример 'everyauth' подходящим для вас? – diewie

ответ

0

Моя ошибка, я перенаправляя пользователей на URL аутентификации приложения, как описано в документации Foursquare. Он работает, если я перенаправляю пользователя в/auth/foursquare /, так как everyauth обрабатывает перенаправление на поставщика oauth.