ユーザーがログインしているときに、基本的な管理者認証を設定しています。この関数を authcallback で呼び出します。
function checkAdmin (req) {
Admin.findOne( { user : req.user.id },function ( err, admin, count ){
req.session.isAdmin = true;
console.log("session : %j",req.session);
})
}
そして、私はします
res.redirect('/')
インデックス コントローラ内のコード:
console.log("session : %j",req.session);
res.render('index', { title: 'Accueil',message: req.flash('info') });
そして、これは私がコンソールに表示するものです:
session : {"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path"
:"/"},"passport":{"user":"5079832df1e9a6485e000001"},"flash":{},"isAdmin":true}
session : {"cookie":{"originalMaxAge":null,"expires":null,"httpOnly":true,"path"
:"/"},"passport":{"user":"5079832df1e9a6485e000001"},"flash":{}}
セッションが isAdmin 値を保存しない理由がわかりません。
app.use(app.router) の場所が原因である可能性があるという他の質問をいくつか読みましたが、私はそうします:
app.use(cookieParser)
app.use(express.session({store: session_store }));
app.use(passport.initialize())
app.use(passport.session())
// routes should be at the last
app.use(app.router)
それは私が推測する一種のばかでなければなりません..