【发布时间】:2019-01-30 18:48:28
【问题描述】:
我正在使用 AsyncStorage 存储来自 AWS 的 JWT 令牌,但我想澄清一个意外行为。
这是我当前的代码:
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模拟器:成功
- 带有远程调试 JS 的 IOS 模拟器:成功
问题是 JWT 令牌似乎既不是由 AsyncStorage 也不是由 AWS Auth Class 检索,我无法解决它,因为:
- 我在安卓真机上运行没有调试:不行。
- 我在带有调试功能的 Android 上运行:它可以工作。
所以我无法调试以查看问题所在,因为当我尝试在 Android 上调试时它可以工作。
希望有人可以帮助我。
【问题讨论】:
-
一个我还没有解决的奇怪行为...
-
我也有类似的问题。你解决了吗?
-
我放弃了 Apollo 客户端,现在我使用 aws-amplify 包中的 API.graphql。
标签: debugging react-native async-await asyncstorage aws-amplify