Выпуск ОписаниеЭто ошибка? Или выполняется рабочий процесс анонимных пользователей по-другому?
Я использую последнюю версию синтаксического-сервер и последний IOS SDK, чтобы создать простой знак на поток с участием анонимных пользователей. Что происходит, пользователь получает следующее сообщение об ошибке при попытке выйти:
недопустимый сессионный токен (Код: 209, Версия: 1.13.0)
Шаги к размножению
Мое приложение запускается, и следующий код выполняется в моем файле AppDelegate.swift.
let parseConfig = ParseClientConfiguration {
$0.applicationId = "insertAppIdHere"
$0.clientKey = "insertClientKeyHere"
$0.server = "https://MyParseServer.com/parse"
}
Parse.initializeWithConfiguration(parseConfig)
PFUser.enableAutomaticUser()
PFUser.currentUser()!.saveInBackground()
Нет проблем, которые могут возникнуть.
Теперь я зарегистрирую пользователя, чтобы преобразовать свою учетную запись из анонимного состояния в обычный (не анонимный) статус с помощью функции signUp в SDK iOS. Это происходит после заполнения нескольких полей и нажатия кнопки «Зарегистрироваться».
let user = PFUser.currentUser()!
user.username = self.emailTextField.text
user.password = self.passwordTextField.text
user.email = self.emailTextField.text
user.signUpInBackgroundWithBlock({ (succeed, error) -> Void in
if (error == nil) {
self.dismissViewControllerAnimated(true, completion: nil)
} else {
print(error!.description)
}
})
На данный момент на сервере отсутствует токен сеанса. Это проблема.
Итак, теперь я нажимаю кнопку, чтобы выйти из системы.
PFUser.logOutInBackgroundWithBlock({(error) -> Void in
if (error == nil) {
logOutBarButton.enabled = true
self.dismissViewControllerAnimated(true, completion: nil)
} else {
logOutBarButton.enabled = true
let errorVC = UIAlertController(title: "Oops..", message: "You Cannot Log Out at the Moment.", preferredStyle: .Alert)
errorVC.addAction(UIAlertAction(title: "OK", style: .Default, handler: { action in }))
self.presentViewController(errorVC, animated: true, completion: nil)
}
})
и получить ошибку (как и ожидалось) в консоли: недопустимый сеанса фишку (Код: 209, Версия: 1.13.0)
Ожидаемые результаты
Я не должен видеть ошибка, должен быть действительный токен сеанса после регистрации на сервере.
Фактический результат
недействителен сессия маркер (код: 209, Версия: 1.13.0) Настройка окружающей среды
Сервер версия разбора сервера: 2.2.15 Размещено на: Google App Engine
База данных Версия MongoDB: 3.0.12 Размещенные на: MLAB
Дополнительные примечания
Обратите внимание, что каждый раз, когда я сделал этот тест я сделал, что база данных была пуста. Это также означает, что я не переношу ничего из оригинального разбора.
Выход из системы во второй раз завершается успешно, но я думаю, это потому, что он просто локально устанавливает currentUser в ноль.
Все это может быть непонимание того, как работают анонимные пользователи (дальнейшее разъяснение было бы полезно). Я почти уверен, что это могло бы работать над оригинальным анализом, поскольку я видел подобные реализации в репозиториях на github. Пример: (https://github.com/appflock/open/blob/master/ios/Reveal/AppDelegate.m)
Как я могу остановить эту ошибку при использовании анонимных пользователей на анализируемом сервере?
Спасибо за вклад в работу репо – AppreciateIt