2016-07-12 4 views
0

Node.js가 내 세션을 기억하지 않는 것 같습니다.Node.js 세션 로그인

미들웨어로 cookie-parserexpress-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.입니다. 에서 세션 미들웨어 설정 변경에

답변

0

: cookie: {secure: true} 보안 상태로 표시 cookie: {secure: false}

쿠키로는 비 HTTPS 요청을 전송되지 않습니다. HTTP를 통해 응용 프로그램에 액세스하고 있습니다. 그 https://en.wikipedia.org/wiki/HTTP_cookie#Secure_cookie

+0

아를 해결할 수 있었다. 'TypeError : Secret string을 제공해야합니다 .'에 대해 불평합니다. –

+0

나는이 오류를 해결할 수 있었다. 'cookieParser ('derma-aid') 대신'cookieParser ({secret : 'derma-aid'})'를 사용했기 때문입니다. 대부분의 특급 라이브러리가 옵션에 대한 사전을 사용하기 때문에 혼란스러워졌습니다. –

1

더 읽기 나는 오른쪽 TypeError: Secret string must be provided.

- app.use(cookieParser({ 
-  secret: 'derma-aid' 
- })); 
+ app.use(cookieParser(
+  'derma-aid' 
+));