如何知道解析服务器中的 currentUser
Posted
技术标签:
【中文标题】如何知道解析服务器中的 currentUser【英文标题】:How to know the currentUser in parse server 【发布时间】:2016-08-26 19:55:00 【问题描述】:我正在使用 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 的其他解决方案吗?
【问题讨论】:
【参考方案1】:您可以设置一个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
);
【讨论】:
【参考方案2】:解决办法是
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("/");
);
;
【讨论】:
以上是关于如何知道解析服务器中的 currentUser的主要内容,如果未能解决你的问题,请参考以下文章
如何在不知道终端标量的映射和类型中的键的情况下使用 yaml-cpp 库解析任意 yaml 文件?