错误:成为node.js服务器环境中的用户是不安全的

时间:2015-07-17 17:30:11

标签: node.js validation parse-platform npm

我已经使用了方法

Parse.User.become("session-token-here").then(function (user) {
  // The current user is now set to user.
}, function (error) {
  // The token could not be validated.
});

此方法将回调Parse以验证会话令牌并获取关联用户,然后在客户端设置当前用户,如本网站所述 http://blog.parse.com/announcements/bring-your-own-login/

这个方法运行得很好但我最近更新了npm parse 1.5.0的最新版本,现在我收到了以下错误:

Error: It is not secure to become a user on a node.js server environment.
    at Function.Parse.User.Parse.Object.extend.become (/home/...

任何人都有解决这个问题的方法吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

我在Parse.User.become()中遇到了很多问题,这两个问题都在你提到的错误之间,并且它返回了101个无效的用户会话。我的解决方法是绕过Javascript SDK并发出Parse REST API请求。

var request  = require("request"),
    q        = require("q"),
    deferred = q.defer(),
    options  = {
        url: "https://api.parse.com/1/users/me",
        method: "GET",
        json: true,
        headers: {
            "X-Parse-Session-Token": token,
            "X-Parse-Application-Id": "PARSE_APPLICATION_ID",
            "X-Parse-REST-API-Key": "PARSE_RESET_API_KEY"
        }
    };

request(options, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        return deferred.resolve(user);
    } else {
        return deferred.reject(error);
    }
});

return deferred.promise;

答案 1 :(得分:1)

陷入同样的​​问题。虽然绕过Javascript SDK可能会有效,但似乎您可以使用Parse.User.enableUnsafeCurrentUser()帮助在SDK中绕过此错误。

change log的Parse 1.5.0 Javascript SDK部分中,他们提供了以下更新:

  

在node.js中运行时删除了当前用户的概念当前用户可以在具有Parse.User.enableUnsafeCurrentUser()的节点中启用现在许多请求支持将显式会话令牌作为选项传递

此方法可能存在一些意外的安全问题。在阅读源代码时,这也允许您也使用Parse.User.current和其他类似的功能。在管理您自己的会话信息时,使用.become可能仍然是最安全的选择。