Передача анонимного PFUser в Cloud Code в Parse iOS SDK

Я пытаюсь обеспечить функцию Cloud в моем приложении Parse. Эта функция не создает объекты или что-либо еще. Он просто вызывает внешний API и возвращает результат. Однако, чтобы обеспечить его безопасность, я пытаюсь создать анонимного пользователя с помощью iOS SDK следующим образом:

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

какие выводы

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

Похоже, что пользователь создается. Но когда я делаю запрос, используя PFCloud объект, моя функция разбора в облаке получает нулевого пользователя:

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

Результат в логе консоли говорит "user":null, Кто-нибудь знает, чего мне не хватает? Кроме того, это лучший способ убедиться, что запросы поступают только от моего клиента iOS, а не из какого-либо другого источника?

Благодарю.

1 ответ

Ваш анонимный пользователь null потому что если вы не сохраните этого пользователя или связанный с ним объект, он не будет существовать на сервере. Из документации Parse:

Анонимные пользователи могут также автоматически создаваться для вас, не требуя сетевого запроса, так что вы можете начать работать с вашим пользователем сразу же после запуска приложения. Когда вы включаете автоматическое создание анонимного пользователя при запуске приложения, [PFUser currentUser] никогда не будет равен нулю. Пользователь будет автоматически создан в облаке при первом сохранении пользователя или любого объекта, имеющего отношение к пользователю. До этого момента идентификатор объекта пользователя будет равен нулю.

Также вы не можете просто проверить, поступает ли запрос от клиента iOS. Весь смысл системы REST заключается в том, что сервер не сохраняет никакого состояния, он просто отвечает на запросы из разных источников. Источники должны отправлять свои учетные данные (обычно в виде токена безопасности, который выдается сервером при входе в систему) с каждым запросом. Сервер проверяет подлинность токена и не был подделан перед обработкой запроса. Parse предоставляет вам аутентификацию пользователя, которая упрощает проверку того, что вошедший в систему пользователь запрашивает что-то. Затем вы можете создать дополнительные меры безопасности, чтобы гарантировать доступ к определенным данным только определенным пользователям.

Другие вопросы по тегам