【问题标题】:Preventing shared session with usergrid authentication使用 usergrid 身份验证防止共享会话
【发布时间】:2016-06-04 10:14:34
【问题描述】:

我有一个使用 Usergrid 作为后端的节点站点。我创建了一个登录表单屏幕,但是当一个用户登录时,它会显示该用户正在登录到该站点上的所有其他用户。如果其他人登录,那么它将覆盖以前登录的用户。如何防止经过身份验证的会话在所有用户之间共享?我希望每个用户在浏览网站时都有自己的经过身份验证的会话。

登录代码:

app.post("/login", function(req, res) {

    if (client.isLoggedIn()) {
        console.log("already logged in");
        res.send({"status": "success"});
    } else {

        client.login(req.body.username, req.body.password, function(err) {
            logger.debug("After Log In");
            if (err) {
                logger.error('Login Failed');
                logger.error(err);
            } else {
                logger.debug(client.token);

                client.authType = Usergrid.AUTH_APP_USER;

                var options = {
                    method: 'GET',
                    endpoint: 'users/me'
                };

                client.request(options, function(err,data) {
                    if (err) {
                        console.log(err);
                    } else {
                        req.session['current_user'] = data.entities[0];
                        console.log(data);
                        console.log("SESSION");
                        console.log(req.session);
                    }
                    res.send({"status": "success"});
                });
            }
        });
    }
});

【问题讨论】:

    标签: node.js session authentication apigee usergrid


    【解决方案1】:

    我认为问题在于您正在使用 Usergrid.Client 对象的一个​​实例来为许多用户提供服务。相反,您应该做 Usergrid 所做的事情:当用户登录时,您给他们 Usergrid access_token。您可以将其发送回 cookie、JSON 数据或您选择的任何内容。

    然后您会期望来自用户的后续 HTTP 请求将 access_token 包含在 URL 或 cookie 中,或其他任何内容中。在每个请求上,您都创建一个新的 Usergrid.Client 实例并从用户那里传递令牌,例如

    var client = new Usergrid.Client({'token':'abcd5764adf...');

    【讨论】:

      猜你喜欢
      • 2014-01-24
      • 2016-01-22
      • 1970-01-01
      • 2013-08-08
      • 2021-06-28
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      相关资源
      最近更新 更多