💩
`express-session`でセッション情報が渡らない
Node.js
+ express-session
にてreq.session.userid
が渡らないということがありました。
signin.js
で発効したuseridセッション
をindex.js
へ渡すことを目的としています。
先に結論です。
app.js
app.use(session({
secret: 'the secret',
resave: false,
saveUninitialized: true,
cookie: { secure: true } // ここを削除
}))
背景
ここでセッションを発効して
route/signin.js
req.session.userid = results.rows[0].id;
route/index.js
で受け取りたいが、、、
route/index.js
router.get('/', (req, res, next) => {
const isAuth = Boolean(req.session.userid);
console.log(req.session)
req.session.userid = undefined
となってしまっていました。
これでは、ログイン状況によってページを出し分けるような処理ができません。
原因
公式にて注意されていました。ゴメンナサイ。
Note be careful when setting this to true, as compliant clients will not > send the cookie back to the server in the future if the browser does not > have an HTTPS connection.
HTTPS接続
じゃないなら、機能しないで。ってことだったみたいです。
localhost:3000
がそうじゃないための、不具合だったのかなと。
Discussion