私はほとんどすべてのスレッド、投稿、質問を読んでいましたが、セッションクッキーを設定しましたが、まだ完璧な解決策を得ていませんでした。"req.session.user = user"ユーザが定義されていない
私がログインしていたセッションクッキーを設定するWebアプリケーションを作成していた。
を「ユーザー」は定義されていない理由を把握することができません。私はどこにいませんでしたか?私はエラーを理解するためにあらゆるトレイルとエラーを実行しました。
App.jsは
const session = require('client-sessions');
app.use(cookieParser());
app.use(session({
cookieName: 'sessioncookie',
secret: 'long_string_which_is_hard_to_crack',
duration: 30 * 60 * 1000,
activeDuration: 5 * 60 * 1000,
}));
Routes.jsはあなたがfindOne
方法であなたのコレクションを照会するとき、それはあなたに(ここuser
ます関連文書を返します
router.post('/login', (req, res) => {
const emaild = req.body.email;
const passd = req.body.pass;
db.collection('check').findOne({email: emaild}, (err, result) => {
if (err) return console.log(err);
console.log(result.passcode);
console.log('Retrived from database');
bcrypt.compare(passd, result.passcode, function(err, boolean) {
console.log(boolean);
if(boolean == true) {
req.session.user = user; //// It's Undefined
res.redirect('/dashboard');
} else {
res.send('<h1>Wrong Password</h1>');
}
});
});
});
* user *はデータベースから取得したアイテムと同じです。ここでは 'result'という名前を付けていますので、' req.session.user = result; 'を使用してください。 – dNitro
req.session.userに変更しました=結果; but still、=>プロパティ 'user'を未定義に設定することはできません。また、データベースから派生したユーザーの電子メールアドレスである "result.email"で試してみました。 –
これは、 'req.session'が未定義であることを意味します。 [client-sessions documentation](https://github.com/mozilla/node-client-sessions)を見ると、セッションがcookieNameプロパティ値でreqに接続されているようです。 'req.sessioncookie.user = result;' – dNitro