我设置了一个简单的NodeJS网络应用, 基本功能是登录,然后根据会话数据,应用程序从MySql中提取一些数据。 工作正常(Link)。
一旦我写了客户端反应会话数据没有存储(因此应用程序无法正常工作) 有任何想法吗? 对启动会话的反应是否有任何具体的反应要求?
注意:在页面重定向(成功)到menu.html后的反应中 我期待req.session有一个auth属性(= true) 但是当我记录会话数据时它是空的。 因此我假设没有存储会话数据。
Login.js
const express = require('express');
const con = require('../config/mysqlCon.js');
const session = require('express-session');
const router = express.Router();
app.use(session({
secret: 'secret',
resave: true,
saveUninitialized: true,
}))
router.post('/',approveUserPassword, function(req, res){
if(req.session.auth){
let url = '/menu.html';
res.redirect(url);
}else{
req.session.auth = false;
let url = '/index.html';
res.redirect(url);
}
});
function approveUserPassword(req, res, next) {
let email = req.body.email;
let psw = req.body.psw;
let query = "SELECT id FROM Users " +
"WHERE email= '" + email + "' AND " +
"password='" + psw + "'";
con.query(query, function (err, result, fields) {
if (err) throw err;
if(result.length > 0){
req.session.auth = true;
req.session.rest_id = result[0].id;
req.session.save();
}else{
req.session.auth = false;
}
next();
});
}
刚才注意到创建了2个会话,不确定原因。 节点js侦听端口8080 ......
时间:1509727252952 ID:j1KIe081XzRhWKKKM7z5Jjv1N6Cderee 会议{ 曲奇饼: {路径:'/', _expires:null, originalMaxAge:null, httpOnly:true}}
时间:1509727252955 ID:j1KIe081XzRhWKKKM7z5Jjv1N6Cderee 会议{ 曲奇饼: {路径:'/', _expires:null, originalMaxAge:null, httpOnly:true}} 会议{ 曲奇饼: {路径:'/', _expires:null, originalMaxAge:null, httpOnly:true}, auth:是的, rest_id:100}
时间:1509727253124 ID:rqCBY1fnH5WpS9M6Brp6RZokxMWzf0Pk 会议{ 曲奇饼: {路径:'/', _expires:null, originalMaxAge:null, httpOnly:true}}
时间:1509727253124 ID:rqCBY1fnH5WpS9M6Brp6RZokxMWzf0Pk 会议{ 曲奇饼: {路径:'/', _expires:null, originalMaxAge:null, httpOnly:true}} rqCBY1fnH5WpS9M6Brp6RZokxMWzf0Pk
答案 0 :(得分:0)
Express router create a new session not wanted
我认为在创建ajax请求时存在一些问题:
fetch('/api/myroute', {
credentials: 'same-origin' // This is the line you are missing
}).then(response => response.json())
.then(json => {
dispatch({
type: types.MY_ACTION, forms: json, receivedAt: Date.now()
})
})