Я использую AsyncStorage для хранения токена JWT из AWS, но есть неожиданное поведение, которое я хочу прояснить.
Это мой текущий код:
const retrieveJwt = async () => {
try {
const value = await AsyncStorage.getItem('jwt');
if (value !== null) {
return value;
}
else{
let user = await Auth.currentAuthenticatedUser();
let jwt = user.signInUserSession.accessToken.jwtToken;
return jwt
}
} catch (error) {
// Error retrieving data
let user = await Auth.currentAuthenticatedUser();
let jwt = user.signInUserSession.accessToken.jwtToken;
return jwt
}
}
// AppSync init
const client = new Client({
url: AppSync.graphqlEndpoint,
region: AppSync.region,
auth:{
type: 'AMAZON_COGNITO_USER_POOLS',
jwtToken: async () => await retrieveJwt(),
},
disableOffline: true
})
Когда я запускаю это приложение, я получил это:
- Реальное устройство Android без отладки: Ошибка
- Реальное устройство Android с Удаленная отладка JS : Успех
- Симулятор IOS без отладки: Успех
- Симулятор IOS с Удаленная отладка JS : Успех
Проблема в том, что кажется, что токен JWT не извлекается ни AsyncStorage, ни классом аутентификации AWS, и я не могу разрешить его, потому что:
- Я работаю на реальном Android-устройстве без отладки: не работает.
- Я работаю на Android с отладкой: все работает.
Так что я не могу отладить, чтобы увидеть, что не так, потому что это работает, когда я пытаюсь отладить на Android.
Надеюсь, кто-нибудь может мне помочь.