Мое приложение ionic / angular / firebase выходит из системы через 1 час.Как реализовать токен обновления с помощью API REST, чтобы состояние входа в систему сохранялось бесконечно?Официальные документы предоставляют URL-адрес и необходимые параметры, но не содержат информации о том, как и где их реализовать.
https://firebase.google.com/docs/reference/rest/auth#section-refresh-token
Приведенный ниже код является функцией входа в систему.IdToken - это то, что используется для аутентификации в Auth Guard.Я понимаю, что добавлять код токена обновления здесь не имеет смысла, но я не знаком с firebase и не уверен, как работает обновление.
login(userEmail: string, userPassword: string) {
let email: string;
let idToken: string;
let localId: string;
let refreshToken: string;
return this.http.post<AuthResponseData>(
`https://www.googleapis.com/identitytoolkit/v3/relyingparty
/verifyPassword?key=${environment.firebaseAPIKey}`,
{ email: userEmail, password: userPassword, returnSecureToken:
true }
).pipe(
take(1),
switchMap(acctData => {
idToken = acctData.idToken;
email = acctData.email;
localId = acctData.localId;
refreshToken = acctData.refreshToken;
return this.http.post<AuthResponseData>(
`https://securetoken.googleapis.com/v1/token?
key=${environment.firebaseAPIKey}`,
{ grant_type: 'refresh_token', refresh_token: refreshToken }
);
}),
tap(refreshData => {
const tokenExp = new Date(new Date().getTime() +
(+refreshData.expiresIn * 1000));
const acct = new Account(
localId,
email,
refreshData.idToken,
refreshData.refreshToken,
tokenExp
);
this._account.next(acct);
})
);
}