文档说:“令牌在必要时由库自动刷新。”我打
AWSMobileClient.getInstance().getTokens().getAccessToken().getTokenString();
每次使用AccessToken调用API之前。
这是我的awsconfiguration文件的样子
`{
"IdentityManager": {
"Default": {}
},
"CredentialsProvider": {
"CognitoIdentity": {
"Default": {
"PoolId": "ap-xxxxx-1:2xxxxxx-xxxx-xxxx-xxxx-7xxxxxxxxxx",
"Region": "ap-xxxxx-1"
}
}
},
"CognitoUserPool": {
"Default": {
"PoolId": "ap-xxxxx-1_xxxxxxxxx",
"AppClientId": "xxxxxxxxxxxxxxxxxxxxx",
"Region": "ap-xxxxx-1"
}
}
一个小时后,API返回401(身份验证错误)。
并且AWSMobileClient.getInstance().getTokens().getAccessToken().getTokenString();
返回一个错误
AWSMobileClient: Tokens are invalid, please sign-in again.
java.lang.Exception: No cached session.
我做错什么了吗? PS:我没有使用Amplify CLI。
答案 0 :(得分:0)
所以问题是我从主线程调用了getTokens()方法,它不刷新就返回了令牌。然后,将getTokens调用移到AWSMobileClient.getInstance()。initialize(..)调用中,并在需要时获取刷新的令牌。