Использование Firebase Refresh Token в Ionic App - PullRequest
0 голосов
/ 18 июня 2019

Мое приложение 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);
   })
  );
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...