#reactjs #react-native
Вопрос:
Я использую expo SecureStore, и он всегда возвращает старое значение или значение null в первый раз, на экране входа в систему, я отправляю запрос на получение токена и сохранение токена
fetch("https://localhost/api/phlebotomy/login?email=" email "amp;password=" password, requestOptions)
.then((response) => response.json())
.then((json) => {
if (json.token_type === "bearer") {
// console.log(json.access_token);
token = json.access_token;
save('secure_token', token);
navigation.navigate('Home');
}else{
Alert.alert(json.error);
}
})
.catch((error) => {
console.error(error);
})
И пытаюсь вывести свой жетон на разные экраны:
const getToken = async () => {
try {
const value = await SecureStore.getItemAsync('secure_token')
if(value !== null) {
return value;
}else{
console.log('Empty Token');
}
} catch(e) {
// error reading value
}
}
Я использую эту функцию для хранения своего токена
async function save(key, value) {
Alert.alert("Successfully Logged In!");
await SecureStore.setItemAsync(key, value);
}
Когда я закрываю приложение и открываю его снова, оно возвращает старое значение, сохраненное ранее. Не могли бы вы, пожалуйста, помочь мне, как я могу это решить?
Ответ №1:
Я решил свою проблему с заменой fetch на axios. И сохраните токен в заголовке axios по умолчанию
пример:
axios.defaults.headers.common['Authorization'] =
'Bearer ' response.data.response.access_token;