2016-07-03 4 views
0

Выпуск ОписаниеЭто ошибка? Или выполняется рабочий процесс анонимных пользователей по-другому?

Я использую последнюю версию синтаксического-сервер и последний 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)

Как я могу остановить эту ошибку при использовании анонимных пользователей на анализируемом сервере?

ответ

1

Это, как мы надеемся, будет исправлено с предстоящим 2.2.17

+0

Спасибо за вклад в работу репо – AppreciateIt

Смежные вопросы