Node.js가 내 세션을 기억하지 않는 것 같습니다.Node.js 세션 로그인
미들웨어로 cookie-parser
및 express-session
의 Express를 사용하고 있습니다.
내 응용 프로그램에서는 Mongo를 사용하여 사용자 이름과 암호를 유지합니다.
당신이http://localhost:5000/login
에 브라우저에 가면
var express = require('express');
var cookieParser = require('cookie-parser');
var session = require('express-session');
var app = express();
app.use(cookieParser({
secret: 'derma-aid'
}));
app.use(session({
secret: 'derma-aid',
resave: false,
saveUninitialized: false,
cookie: {secure: false}
}));
// CORS (Cross-Origin Resource Sharing) headers to support Cross-site HTTP requests
app.all('*', function(req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'X-Requested-With');
next();
});
app.get('/login', function(req, res)
{
console.log('login');
req.session.user_id = 500;
res.send('<h1>login</h1>');
});
app.get('/view', function(req, res)
{
console.log('view id: ' + req.session.user_id);
res.send('<h1>view: ' + req.session.user_id + '</h1>');
});
app.get('/logout', function(req, res)
{
console.log('logout: ' + req.session.user_id);
res.send('<h1>logout: ' + req.session.user_id + '</h1>');
delete req.session.user_id;
});
app.listen(5000);
, 다음 req.session.user_id
설정해야하며 http://localhost:5000/view
에 제대로 표시 다음
MWE이다. @tiblu에 의해 제안cookie: {secure: false}
:
하지만, 대신에, 나는 정의되지 않은 메시지를 얻고있다 ...
편집 할 수 있습니다. 이 오류는 TypeError: Secret string must be provided.
입니다. 에서 세션 미들웨어 설정 변경에
아를 해결할 수 있었다. 'TypeError : Secret string을 제공해야합니다 .'에 대해 불평합니다. –
나는이 오류를 해결할 수 있었다. 'cookieParser ('derma-aid') 대신'cookieParser ({secret : 'derma-aid'})'를 사용했기 때문입니다. 대부분의 특급 라이브러리가 옵션에 대한 사전을 사용하기 때문에 혼란스러워졌습니다. –