gpt4 book ai didi

node.js - Nodejs Express 中的 session

转载 作者:太空宇宙 更新时间:2023-11-04 02:10:29 25 4
gpt4 key购买 nike

我正在使用 const SessionStore = require('express-session-sequelize')(expressSession.Store); 来存储 session 。我想在 session 中保存登录网站的当前用户。

这是商店的配置:

const expressSession = require('express-session');
const SessionStore = require('express-session-sequelize')(expressSession.Store);
const Sequelize = require('sequelize');
const myDatabase = new Sequelize('analytic', 'root', '', {
host: 'localhost',
dialect: 'mysql'
});

const sequelizeSessionStore = new SessionStore({
checkExpirationInterval: 15 * 60 * 1000, // The interval at which to cleanup expired sessions in milliseconds.
expiration: 24 * 60 * 60 * 1000, // The maximum age (in milliseconds) of a valid session.
db: myDatabase
});
const cookieParser = require('cookie-parser');
app.use(cookieParser());
app.use(expressSession({
secret: '412415415415415121212121',
store: sequelizeSessionStore,
name: 'session_id',
resave: false,
saveUninitialized: false
}));

所以,现在登录我有这个:

var express = require('express');
var url = require('url');
var router = express.Router();
var User = require('../../model').User;
var jwt = require('jsonwebtoken');
var app = require("../../application");
router.post('/authenticate', function(req, res) {
User.doLogin(req).then((result)=> {
if (result) {
if (result.error) {
if (result.error.hasOwnProperty("email")) {
res.send(400, { success: false, message: "Incorrect user / password"});
} else if (result.error.hasOwnProperty("activated")) {
res.send(400, {success: false, message: "You are not activated yet"});
}
} else {
//app.createSession(req);
req.session.user = result;
res.send(200, result);


}
}
});
});


module.exports = router;

现在,在此req.session.user = result;之后,我在数据库 session 表中包含当前用户数据。现在,

  1. 如何验证该用户是否已通过身份验证?
  2. 我注意到,对于每个请求,我都会得到不同的 sessionID(这样可以吗)

谢谢

最佳答案

您好,用户管理器您可以使用 passportjs它是一个很棒的 Express 用户管理器,并为您的用户管理器逻辑提供高质量的处理。

关于node.js - Nodejs Express 中的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42473270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com