Я прочитал так много статей об аутентификации firebase в сети, но не смог найти четкого объяснения того, как idTokens предполагается использовать на стороне клиента.Вот что я знаю до сих пор
После того, как пользователь вошел в систему, мы можем получить токен, используя следующий метод, и он автоматически обновит токен, если срок его действия истек
firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idToken) {
// Send token to your backend via HTTPS
// ...
}).catch(function(error) {
// Handle error
});
Затем мы можем отправить этот токен в наш бэкэнд, где мы можем использовать firebase admin SDK для проверки токена id и получения идентификатора пользователя.
admin.auth().verifyIdToken(idToken).then(function(decodedToken) {
var uid = decodedToken.uid;
// ...
}).catch(function(error) {
// Handle error
});
Вотвещи, которые я не понимаю.
- Нужно ли вызывать метод getIdToken () перед каждым вызовом API сервера для получения idToken?
- В документации Firebase говорится, что токенистекает через 1 час.Поэтому я должен отслеживать это с помощью localStorage, а затем повторно использовать токен в течение 1 часа, пока он не истечет, а затем выдать новый с помощью getIdToken ()?
- Должен ли я вместо этого создать сеанс на бэкэнде сUID, который не истекает, а затем использовать его, чтобы проверить, вошел ли пользователь в систему или нет?