在Parse iOS SDK中将匿名PFUser传递给Cloud Code

时间:2015-11-05 02:55:16

标签: facebook parse-platform cloud-code pfuser

我试图在我的Parse应用程序中保护云功能。此功能不会创建对象或任何东西。它只调用外部API并返回结果。但是,为了确保安全,我尝试使用iOS SDK创建匿名用户,如下所示:

PFUser.enableAutomaticUser()
print(PFUser.currentUser())

输出

Optional(<PFUser: 0x7fd3535570c0, objectId: new, localId: (null)> {})

似乎正在创建用户。但是当我使用PFCloud对象发出请求时,我在Cloud中的解析函数会获得一个空用户:

PFCloud.callFunctionInBackground("<endpoint>", withParameters:[<params_dict>], block: {(result) -> Void in
    print(result)
})

控制台日志的结果显示为"user":null。有谁知道我可能会缺少什么?另外,这是确保请求仅来自我的iOS客户端而不是来自其他来源的最佳方法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您的匿名用户是#!/usr/bin/env perl use strict; use warnings; use Time::Piece; my $start_time=Time::Piece -> new(1448841600); print $start_time,"\n"; print $start_time -> epoch,"\n"; print $start_time -> strftime ( "%Y-%m-%d %H:%M:%S" ),"\n"; #nb - you can also use localtime/gmtime: my $end_time = gmtime(1448863200); print $end_time,"\n"; print $end_time->epoch,"\n"; ,因为除非您保存该用户或与其相关的对象,否则它将不存在于服务器上。来自Parse documentation

  

也可以自动为您创建匿名用户   需要网络请求,以便您可以开始使用您的网络   应用程序启动时立即用户。启用时   在应用程序启动时自动创建匿名用户,[PFUser   currentUser]永远不会是零。 将自动创建用户   在云中第一次与用户或任何具有关系的对象   用户已保存。在此之前,用户的对象ID将为零

此外,您无法简单地检查请求是否来自iOS客户端。 REST系统的重点在于服务器不保留任何状态,它只响应来自不同源的请求。源必须在每次请求时发送其凭证(通常是在登录期间由服务器发布的安全令牌中)。在验证请求之前,服务器会验证令牌是否为正版并且未被篡改。 Parse为您提供用户身份验证,使您可以轻松验证登录用户是否正在请求某些内容。然后,您可以在此基础上构建额外的安全措施,以确保只允许某些用户访问某些数据。