Передача анонимного 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 предоставляет вам аутентификацию пользователя, которая упрощает проверку того, что вошедший в систему пользователь запрашивает что-то. Затем вы можете создать дополнительные меры безопасности, чтобы гарантировать доступ к определенным данным только определенным пользователям.