Javascript 护照号码为';t保持持久登录会话
我先看了一下,但没有帮助,也没有意义 我正在尝试使用我的帐户进行持久登录。我的序列化过程不起作用Javascript 护照号码为';t保持持久登录会话,javascript,node.js,mongodb,passport.js,passport-local,Javascript,Node.js,Mongodb,Passport.js,Passport Local,我先看了一下,但没有帮助,也没有意义 我正在尝试使用我的帐户进行持久登录。我的序列化过程不起作用 // Passport needs to be able to serialize and deserialize users to support persistent login sessions passport.serializeUser(function(user, done) { console.log('serializing user:',user.username);
// Passport needs to be able to serialize and deserialize users to support persistent login sessions
passport.serializeUser(function(user, done) {
console.log('serializing user:',user.username);
//return the unique id for the user
return done(null, user._id);
});
//Desieralize user will call with the unique id provided by serializeuser
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
console.log('deserializing user:',user.username);
return done(err, user);
});
});
整个passport文件可以在github上找到
我认为问题在于我立即被反序列化,或者至少console.logs显示了这一点
也可以是我的课程:
app.use(session({
secret: 'keyboard cat',
cookie : {
maxAge: 3600000 // see below
}
}));
以下是我的用户模式:
var userSchema = new mongoose.Schema({
username : String,
password : String, //Hash
created_at : {type: Date, default : Date.now}
});
谢谢你的帮助 您提到的链接是关于express framework的旧版本,您在包中使用的。json
,“express”:“~4.13.1”
,是非常新的
您需要移动这些行:
app.use(passport.initialize());
app.use(passport.session());
稍高一点,位于应用程序的正下方。使用(session({…})
我建议您关注这篇博文,它肯定会帮助您您的问题不在passport或后端。它位于前端,带有angular。当用户进行登录操作时,您只需设置
$rootScope.authenticated
,但您需要在每次应用程序初始化时通过调用使用api查看用户以前是否已登录
因此,也许在
routes/api.js
中创建一个router.route('/current_user')
路由,该路由应返回null
(或某种来宾用户对象)或者,它将返回当前登录的用户信息,以便您的前端angular应用程序知道用户是否登录,并具有一些用户信息。如果/api/current_user
提供了一个用户,那么您就知道您已登录,您可以设置$rootScope.authenticated=true
只需登录即可它对任何人都有帮助
检查您的客户端/浏览器是否正在执行Set Cookie
标题
在我的例子中,它在Safari中运行良好,但在Chrome或Firefox中没有。这显然是一个客户端问题,因为没有浏览器识别服务器端代码。Safari和Chrome/Firefox之间的一个区别是,Safari中使用了
fetch
polyfill,而Chrome和Firefox本机支持它。fetch
除非在选项中提供凭据,否则不要使用Set Cookie
标题。很抱歉,我刚刚看到了这个答案。我来看看!这似乎是解决方法