Обновление маркера firebase Flutter и API RESTfull

#flutter #dart #hybrid-mobile-app #mobile-application

Вопрос:

Как я могу обновить токен firebase, который я получаю от текущего пользователя, а затем поместить его в API?

Ответ №1:

Когда вы получаете токен firebase, вы также получаете в ответ свойство refresh_token. Вы можете сохранить его, а затем отправить запрос на отправку по адресу:

 https://securetoken.googleapis.com/v1/token?key=[API_KEY]
 

с телом:

тип гранта: обновление

обновление_токена: [обновление_токена]

Более подробная информация здесь: https://firebase.google.com/docs/reference/rest/auth#section-refresh-token

 // Sign In with email and password
  var signInResponse = await http.post(
    Uri.parse(
        'https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=[API_KEY]'),
    body: {
      "email": "example@example.com",
      "password": "example",
      "returnSecureToken": "true"
    },
  );

  var jsonSignInResponse =
      jsonDecode(signInResponse.body) as Map<String, dynamic>;
  
  // This refresh token you can use to refresh your auth token
  var refreshToken = jsonSignInResponse['refreshToken'];

  // Make suchlike request when you need to refresh your auth token
  var refreshResponse = await http.post(
    Uri.parse(
        'https://securetoken.googleapis.com/v1/token?key=[API_KEY]'),
    body: {
      "grant_type": "refresh_token",
      "refresh_token": refreshToken,
    },
  );

  // Here you get your refreshed auth token -> jsonRefreshResponse['id_token']
  var jsonRefreshResponse =
      jsonDecode(refreshResponse.body) as Map<String, dynamic>;
 

Комментарии:

1. Спасибо вам за ответ! Можете ли вы написать какой-либо пример фрагмента, пожалуйста?