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