我已经使用了方法
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/...
任何人都有解决这个问题的方法吗?
提前致谢
答案 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
可能仍然是最安全的选择。