13

ここで説明されている回避策を試しています

https://github.com/jaredhanson/passport/issues/14

app.use(passport.initialize());
app.use(passport.session());  
app.use(app.router);
app.use(express.static(__dirname + '/public'));

正常に動作します

app.use(app.router);
app.use(express.static(__dirname + '/public'));
app.use(passport.initialize());
app.use(passport.session()); 

与える

DEBUG: Error: passport.initialize() middleware not in use
    at IncomingMessage.<anonymous> (/.../node_modules/passport/lib/passport/http/request.js:30:30)
    at Context.<anonymous> (/.../node_modules/passport/lib/passport/middleware/authenticate.js:92:11)
    at Context.<anonymous> (/.../core/node_modules/passport/lib/passport/context/http/actions.js:21:25)
    at Strategy.success (native)
4

3 に答える 3

28

あなたはまだapp.use(app.router)パスポートの後にする必要があります。そうしないと、パスポートコードの前にルートが実行されるため、エラーが表示されます。これは機能するはずです:

app.use(express.static(__dirname + '/public'));
app.use(passport.initialize());
app.use(passport.session()); 
app.use(app.router);
于 2012-05-08T13:14:02.763 に答える
0

誰かを助けるかもしれません、私は同じ問題を抱えていました。私のアプリの構成は次のようになりました。これがエラーの原因でした。

app.configure(function() {
  ....
app.use(app.router);    
app.use(passport.initialize());
app.use(passport.session());
app.use(express.static(path.join(__dirname, 'public')));

});

それを機能させるには、以下のように並べ替える必要がありました。

app.configure(function() {
  ....
app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);    
app.use(express.static(path.join(__dirname, 'public')));

});
于 2016-01-02T20:19:26.690 に答える