我找不到有关如何使用 AWS 的 Amplify Android 库刷新访问令牌的信息。
在文档和一些论坛中,有人建议这一切都是自动发生的。但就我而言,事实并非如此。
在应用程序中,我使用 Amplify Auth 进行用户身份验证,还使用 Amplify Storage 和 Amplify Predictions。
为了查询我的数据库,我使用了DynamoDBMapper
适用于 Android 的 AWS 开发工具包。
到目前为止,我已尝试通过以下方式强制刷新令牌:
auth.currentUser
AWSMovileClient.getInstance().tokens
AWSMobileClient.getInstance().currentUserState()
Amplify.Auth.fetchAuthSession()
前三个都没有工作。fetchAuthSession(...)
是我现在使用的技术,但它是异步的,需要一点时间才能产生结果。我必须在我的splash activity
. 否则,如果它是异步的并且有依赖于其结果的对数据库权限的请求,则数据库调用将导致NotAuthorizedException
.
此外,刷新令牌可以设置为 10 年,因此目前不是问题。问题是旧的访问令牌过期后没有创建新的访问令牌,我无法执行任何经过身份验证的用户操作。
有没有办法快速检查令牌是否有效——如果不是,刷新它们?