如何知道解析服务器中的 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的主要内容,如果未能解决你的问题,请参考以下文章

如何知道域名是否解析成功

您将如何解析 Ruby 中的 url 以获取主域?

如何在 Ios 中解析 Web 服务的响应?

如何在不知道终端标量的映射和类型中的键的情况下使用 yaml-cpp 库解析任意 yaml 文件?

解析 If-Modified-Since 标头 (node.js)

如何从 json(url) 解析数据并将数据发送到 url