我正在使用express和Parse进行注册但是当登录重定向到其他视图时我想获取currentUser但是这次发送未定义这是我的登录代码
exports.login_post = function(req, res) {
Parse.User.logIn(req.body.username, req.body.password,{
success: function(user) {
if (user.get("tipoUsuario") == 1) {
console.log("Usuario Administrador Logeado con Exito "+user.id)
res.redirect('/admin_admin');
}
if (user.get("tipoUsuario")==2){
console.log("Usuario Restaurante Logeado con Exito " + user.id)
res.redirect('/edit_profile');
} else {
res.redirect('/');
}
},
error: function(user, error) {
console.log(req.body.username);
console.log(req.body.password);
console.log("error"+error)
res.redirect('/');
}
});
};
但我无法使用var currentUser = Parse.User.current();
返回未定义。
有些人知道获取currentUser的其他解决方案吗?
答案 0 :(得分:0)
您可以设置session variable
来存储current user
,然后在其他视图中检索该用户。
您可以阅读如何在此documenatation中设置会话变量。这将为您提供有关如何使用会话变量的更好的见解和理解。
在重定向之前设置会话变量。
req.session.currUser= currentUser;
res.redirect('/');
在其他视图中检索会话变量:
app.get('/', function(req, res) {
var currUser= req.session.currUser;
req.session.currUser= null; // reset the session variable after retrieving the value.
// Do something
});
答案 1 :(得分:0)
解决方案是
exports.login = function(req, res){
var pathname = req.body.pathname;
Parse.User.logIn(req.body.username, req.body.password, {
success: function(user){
if(user.get("tipoUsuario")==1){
console.log("Usuario Administrador Logeado con Exito "+user.id)
req.session.user = user;
console.log(req.session.user);
res.redirect("/admin_admin");
}
if(user.get("tipoUsuario")==2){
console.log("Usuario Restaurante Logeado con Exito "+user.id)
req.session.user = user;
console.log(req.session.user);
res.redirect("/edit_profile");
}
},
error: function(user, error){
console.log("error name: "+ error.name);
console.log("error message: "+ error.message);
res.redirect("/");
}
});
};