我使用 Passport.JS 与 Express-Session 和 MySQL 数据库来处理用户身份验证。一切都工作正常,直到我从数据库“会话”中删除所有会话以及从数据库“用户”中删除所有用户。从那时起,我不断收到错误:
“无法从会话中反序列化用户”
deserialize() 函数中的 user_id 似乎是一个 bool,这是正确的。在删除用户和会话之前,这是一个允许我从数据库中获取用户的 ID。
这是我的代码:
设置
var express = require('express'),
app = express(),
bodyParser = require('body-parser'),
mysql = require('mysql'),
generator = require('generate-password'),
cookieParser = require('cookie-parser'),
expressValidator = require('express-validator'),
session = require('express-session'),
passport = require('passport'),
MySQLStore = require('express-mysql-session')(session),
LocalStrategy = require('passport-local').Strategy,
bcrypt = require('bcrypt');
const saltRounds = 10;
app.set("view engine", "ejs");
app.use(express.static(__dirname + "/public"));
app.use(bodyParser.urlencoded({extended: true}));
app.use(expressValidator());
app.use(cookieParser());
var options = {
host : 'localhost',
user : 'eliasal',
database : "c9", …
Run Code Online (Sandbox Code Playgroud)