2017-02-01 2 views
0

Хорошо, поэтому я делаю это приложение, которое требует от пользователя входа в систему, а также выхода из системы, если они захотят. Когда пользователь удаляет кнопку выхода из системы, она возвращает их обратно на экран входа в систему и регистрирует пользователя. После выполнения нескольких проверок пользователь полностью вышел из системы и пользователь = nilnil пользователь регистрируется, если пароль некорректен после того, как фактический текущий пользователь выйдет

Проблема, с которой я столкнулась, заключается в том, что после выхода пользователя из системы, если кто-то хочет войти в систему, или тот же пользователь хочет вернуться в систему и пароль неверен, он информирует пользователя о том, что пароль неправильный, но после того, как предупреждение уволено, пользователь «nil» вошел в систему. При сбое приложения при попытке сделать что-либо внутри приложения прошло это. Я поместил «печатные» чеки, чтобы узнать, не подписал ли какой-либо пользователь с неправильными паролями, и единственное возвращение, которое я получаю, это «ноль»

Прежде, чем кто-нибудь об этом упоминает, я уже убедился, что PFUser.enableAutomaticUser() выключен.

Отмечу, что если приложение полностью закрыто и открыто, оно не будет подписывать никого из пользователей. Оно просто позволяет им знать, что пароль неверен, и они могут попробовать еще раз.

 @IBAction func logout(_ sender: Any) { 

    PFUser.logOutInBackground() 

    performSegue(withIdentifier: "logoutSegue", sender: self) 

} 

Выше моей настройки для кнопки выхода из системы. Я пробовал базовый «PFUser.logOut(), а также PFUser.logOutInBackground()

В обоих случаях это то же самое в моем коде. Я буду добавлять информацию по запросу. Пожалуйста, помогите !!!!

+1

вы должны изменить свой первый пост и загрузить фрагмент кода, когда пользователь аутентифицируется –

+0

вы используете свой собственный сервер Синтаксическая You знаю, что Parse.com ушел, правда? – picciano

+0

Я знаю, что Parse.com ушел. Однако Parse - это с открытым исходным кодом. Он работает ... просто немного обмануть его вверх. Я скорее использую Parse, затем Firebase. –

ответ

0

проблема заключается в вашей логике Моя логика такова:.?

// MARK: - LOGOUT BUTTON 
@IBAction func logoutButt(_ sender: Any) { 
    let alert = UIAlertController(title: APP_NAME, 
     message: "Are you sure you want to logout?", 
     preferredStyle: .alert) 

    let ok = UIAlertAction(title: "Logout", style: .default, handler: { (action) -> Void in    
     PFUser.logOutInBackground(block: { (error) in 
      if error == nil { 
       // Show the Login screen 
       let loginVC = self.storyboard?.instantiateViewController(withIdentifier: "Login") as! Login 
       self.present(loginVC, animated: true, completion: nil) 
      } 
     }) 
    }) 


    let cancel = UIAlertAction(title: "Cancel", style: .destructive, handler: { (action) -> Void in }) 

    alert.addAction(ok); alert.addAction(cancel) 
    present(alert, animated: true, completion: nil) 
} 
+0

Это правда, что он должен выполнить нулевую проверку. Тем не менее, он действительно успешно выходит из системы, поэтому, я думаю, мы можем игнорировать выход из системы безопасно. Это, конечно, моя догадка, может быть и неправильная. –

+0

Может быть, но он не разместил свою логику логики для меня, чтобы комментировать. – Cliffordwh

+0

Да, вы правы, он должен был это предоставить. –

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