Подтвердить что ты не робот

Требуется повторная аутентификация Firebase

Мы работаем над iOS-приложением, которое использует Google для аутентификации с помощью firebase. Согласно https://www.firebase.com/docs/ios/guide/user-auth.html#section-login Firebase говорит, что токены auth истекают каждые 24 часа. Нам интересно, нужно ли нам рассмотреть следующий сценарий:

  • Пользователь аутентифицируется с помощью Google и Firebase
  • Наше приложение получает токен Firebase, который истекает через 24 часа.
  • Пользователь закрывает наше приложение iOS
  • За 1 минуту до истечения срока действия токена Firebase, пользователь снова открывает приложение
  • Через минуту мы обращаемся к Firebase. Идентификатор auth истек.

Кажется, нам нужно повторно проверить подлинность с Firebase, наблюдая за изменениями проверки подлинности на https://www.firebase.com/docs/ios/guide/user-auth.html#section-monitoring-authentication. Но нужно ли нам повторно отправить тот же запрос Firebase с № 5 выше? Также кажется, что мы можем повторно проверить подлинность в cancelBlock:

[ref observeEventType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) {
    NSLog(@"%@", snapshot.value);
} withCancelBlock:^(NSError *error) {
    NSLog(@"%@", error.description);
    // reauthenticate and then re-issue request?
}];

Это не было бы идеальным, потому что нам пришлось бы писать этот код везде, где мы делаем запрос.

Каковы наилучшие методы решения этого сценария? Firebase автоматически обновляет токен аутентификации, когда он близок к истечению срока?

4b9b3361

Ответ 1

Очевидно, речь шла о старой версии Firebase и ее SDK. Текущая версия Firebase (3.X) упрощает вам работу, поскольку Firebase помнит, как последний пользователь регистрировался в вашем приложении.

Итак, вы должны просто позвонить FIRApp.configure(), как всегда, например. в вашем application: didFinishLaunchingWithOptions launchOptions:, а затем добавить слушателя состояния также при запуске вашего приложения, например

FIRAuth.auth()?.addStateDidChangeListener() { (auth, firUser) in 
// do something with firUser, e.g. update UI
}

Затем слушатель автоматически будет вызываться во время запуска вашего приложения Firebase всякий раз, когда что-то меняется в отношении вашего пользователя, а токены обрабатываются в фоновом режиме Firebase, т.е. вам не нужно иметь дело с истекшими токенами. (Это может быть сложнее, если вы используете Custom Auth System).