文档中写道:“当需要时,库会自动刷新令牌。”我打电话给
在使用AccessToken调用接口之前,每次都使用AWSMobileClient.getInstance().getTokens().getAccessToken().getTokenString();。下面是我的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"
}
}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。
发布于 2019-12-14 14:37:57
所以问题出在我从主线程调用getTokens()方法时,它没有刷新就返回了令牌。然后,我将getTokens调用移到了AWSMobileClient.getInstance().initialize(..)无论何时,只要需要,我就会得到刷新过的令牌。
https://stackoverflow.com/questions/59304196
复制相似问题