#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. Спасибо вам за ответ! Можете ли вы написать какой-либо пример фрагмента, пожалуйста?