0

Foursquareアプリを作成しようとしていますが、認証を実装するためにEveryauthモジュールを選択しました(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);
4

1 に答える 1

0

私の間違いは、Foursquareのドキュメントで説明されているように、ユーザーをアプリ認証URLにリダイレクトしていました。すべての認証がoauthプロバイダーへのリダイレクトを処理するため、ユーザーを/ auth /foursquare/にリダイレクトすると機能します。

于 2012-04-23T22:35:36.233 に答える