passport.jsにて認証を実装しています。
認証してログインできるのですが、セッションがきれた後にログイン画面に強制的に戻り、そこで再度ログインしようとすると以下のようなエラーがでてしまいます。 csrfの設定が悪さをしているのかなと思ったのですが、最初のログイン時には問題なく動いています。 以下が設定です。 app.configure(function() { app.set('port', process.env.PORT || 3000); app.use(logger.log4js.connectLogger( logger, { level: logger.log4js.levels.INFO, nolog: ["\\.css", "\\.js", "\\.jpg", "\\.jpeg", "\\.gif"] }) ); app.use(express.logger('dev')); app.use(express.limit('2mb')); app.use(express.bodyParser({ keepExtensions: true, uploadDir: './uploads/fullsize' })); app.use(express.cookieParser()); app.use(express.session({ secret: 'abcde', store: new MongoStore({ db: 'session', host: 'localhost', clear_interval: 60 * 60 //セッションタイムアウトの時間を1時間に設定 }), cookie: { httpOnly: false, maxAge: new Date(Date.now() + 60 * 60 * 1000) } })); app.use(express.methodOverride()); app.use(express.static(path.join(application_root, 'public'))); app.use(express.favicon(path.join(application_root, 'public/img/favicon.ico'))); //passportのinitializeとsessionを使います。 app.use(passport.initialize()); app.use(express.csrf()); app.use(passport.session()); app.use(flash()); app.use(express.compress()); app.use(app.router); app.use(lib.notFoundHandler); app.use(lib.errorHandler); }); function csrf(req, res, next) { res.cookie('XSRF-TOKEN', req.session._csrf); res.locals.token = req.session._csrf; next(); } 以下がそのエラーです。 Forbidden: Forbidden at next (/Users/test/projects/myProjest/proto/node_modules/express/node_modules/connect/lib/proto.js:125:13) at Object.handle (/Users/test/projects/myProjest/proto/node_modules/express/node_modules/connect/lib/middleware/csrf.js:54:30) at next (/Users/test/projects/myProjest/proto/node_modules/express/node_modules/connect/lib/proto.js:199:15) at Object.initialize [as handle] (/Users/test/projects/myProjest/proto/node_modules/passport/lib/middleware/initialize.js:62:5) at next (/Users/test/projects/myProjest/proto/node_modules/express/node_modules/connect/lib/proto.js:199:15) at Object.favicon [as handle] (/Users/test/projects/myProjest/proto/node_modules/express/node_modules/connect/lib/middleware/favicon.js:78:7) at next (/Users/test/projects/myProjest/proto/node_modules/express/node_modules/connect/lib/proto.js:199:15) at Object.static (/Users/test/projects/myProjest/proto/node_modules/express/node_modules/connect/lib/middleware/static.js:55:61) at next (/Users/test/projects/myProjest/proto/node_modules/express/node_modules/connect/lib/proto.js:199:15) at Object.methodOverride [as handle] (/Users/test/projects/myProjest/proto/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:37:5) -- --- このメールは Google グループのグループ「Node.js 日本ユーザグループ」の登録者に送られています。 このグループから退会し、グループからのメールの配信を停止するには nodejs_jp+unsubscr...@googlegroups.com にメールを送信してください。 その他のオプションについては、https://groups.google.com/d/optout にアクセスしてください。