Tag: 会议

Express Passport.js不保留会话中的用户对象

我有一个运行在端口3000上的Express应用程序。前端运行在端口80上,所以这是一个CORS应用程序。 用户存储在SQL服务器数据库中。 我使用护照作为本地策略的authentication方法,以及快速会话中间件。 该应用程序是一个单页面应用程序,发送到服务器的所有请求都通过ajax完成。 用户在页面上login并且发送证书,并且如果validation成功,则用户ID以及用户名和FullNmae应该被保持到会话。 我有很多这样的错误:最重要的是,login后,快递保存使用护照的用户名和其他数据到一个新的会话,并返回一个HTML片段,以取代页面上的身体标记。 但是,为了testing用户对象是否存在,我调用/ create-user路由,它说用户对象不在那里。 此外,新的会话开始于每个请求(我检查日志,并看到每次显示不同的会话ID)。 不仅如此,在某一时刻,我能够在浏览器中看到会话cookie,但是我再也看不到它了。 我试图回到我可以看到cookie的地步,但仍然没有出现! 我已经把我的头几个小时,不知道为什么deserializeUser没有被调用,为什么数据不被持久。 我哪里错了? 注意:一些明显的代码省略(app.listen(),require语句等) /* —— CONFIGURATIONS —— */ const app = express(); const mssqlConfig = JSON.parse(fs.readFileSync("mssql-config.json", "utf8")); passport.use(new LocalStrategy( function loginAuthentication(username, password, done) { let connPool = new mssql.ConnectionPool(mssqlConfig); connPool.connect(error => { if (error) {console.log(error); return done(error);} ps = new mssql.PreparedStatement(connPool); ps.input('username', mssql.NVarChar(20)); ps.input('password', […]