【发布时间】:2017-06-23 15:02:24
【问题描述】:
我正在将应用程序从 parse.com 迁移到 buddy.com。迁移的注意事项之一是 Parse.User.current() 在 buddy.com 上不再可用,而是您必须从请求本身获取用户和会话令牌:https://github.com/ParsePlatform/Parse-Server/wiki/Compatibility-with-Hosted-Parse#no-current-user
我正在迁移的应用程序有一个我正在尝试迁移的logoutUser 方法:
Parse.Cloud.define("logoutUser", function(request, response) {
Parse.User.logOut().then(
function onSuccess(result){
response.success(result);
},
function onError(error) {
response.error(error);
}
)
});
现在我正在尝试以新样式执行此操作,但收到错误消息。 (注意:这是云代码,不是 nodejs 环境)
{
"code":"500",
"error":"Error: There is no current user user on a node.js server environment."
}
新实现:
function logoutUser(request, response) {
var user = request.user;
var sessionToken = user.getSessionToken();
Parse.User.logOut({ sessionToken }).then(
function onSuccess(result){
response.success(result);
},
function onError(error) {
response.error(error);
}
)
}
Parse.Cloud.define("logoutUser", function(request, response) {
logoutUser(request, response);
});
关于如何在 Parse on Buddy 云代码中正确注销用户的建议?
【问题讨论】:
-
不确定您要在这里做什么。因为在任何云代码环境中都没有当前用户,所以他们无法注销。建议获取请求用户和会话令牌的解决方案是在运行任何 Parse.Query 时传递令牌。您不必在云代码中注销用户,只需在本地设备/浏览器上。
-
@EReid 嗯好的,那我可能是误会了。我是 Cloud Code 的新手,特别是这个应用程序的新手。所以我猜这意味着注销在这个应用程序中永远不会起作用,因为注销功能是云代码功能。
-
@EReid 当您说在设备上本地注销时,这与解析有什么关系吗?还是只针对应用本身?
-
我不太清楚
Parse.User在原始 Parse.com 上的工作细节,因此无法评论它是否有效。通过在本地注销,这完全取决于您使用的 SDK。我知道 Javascript SDK 和 Android SDK 都具有分别注销用户的功能:Parse.User.logOut()和ParseUser.logOut();。如果使用 Rest api,您只需停止发送X-Parse-Session-Token标头,并删除存储的令牌。 -
是的,我们没有为 Web 客户端使用任何 SDK,只是 POST 和 GET 到 buddy.com 端点。非常感谢,这真的很有帮助。如果您愿意将其移至下方,我很乐意将您的最后一条评论标记为答案。
标签: parse-platform parse-cloud-code buddy.com