Прямо из документации, он говорит, что:Анализ, как обрабатывать недействительный сеанс?
PFUser # CurrentUser() получает вошедшего в систему пользователя с диска и возвращает экземпляр.
Это нормально и все, но что, если пользователь, зарегистрированный на @ диске, не является пользователем, который вошел в систему на сервере. Допустим, что учетная запись пользователя была удалена по какой-либо причине или сеанс больше не действителен из-за изменений в базе данных. В настоящее время это проблемы, с которыми мне приходится сталкиваться.
На протяжении учебники, которые я читал, я видел, используя следующую строку кода, как способ проверить, если пользователь является действительным, и, таким образом, вы можете пропустить этап входа приложения:
if let user = PFUser.currentUser() as? Subclass {
// Simulate successful login
}
Однако это создает проблему для меня, поскольку имитируется успешный вход в систему, но логин не был успешным. Здесь ошибка я имею дело с:
[Error]: недопустимый сессии маркер (код: 209, Версия: 1.12.0)
Так что первое, что я сделал попытку войти пользователь, однако это не удается (я полагаю, потому что пользователь не вошел в систему для начала), и теперь меня бросают в приложение, которое сразу же сбой, потому что данных, требуемых сервером, нет. Вот как я попытался обработать код ошибки 209:
let query = PFQuery(className: "Foo")
query.whereKey("Bar", equalTo: "Foo")
query.findObjectsInBackgroundWithBlock {
(foo, error) -> Void in
if let error = error {
print(error);
if error.code == 209 {
PFUser.logOutInBackgroundWithBlock {
(error) -> Void in
if let error = error {
print("Okay, I'm trapped!");
}
}
}
}
}
Выход этого «запрос» заключается в следующем:
[Error]: invalid session token (Code: 209, Version: 1.12.0)
Okay, I'm trapped!
Я из идей здесь, и я разрывая My волосы, пытаясь выяснить, как правильно проверить пользователя при запуске приложения. Кажется излишним улавливать код ошибки 209 для каждого запроса, но если это то, что вам нужно сделать, то это то, что вам нужно сделать.