如何解决如何使用AWS Amplify Android强制认证令牌刷新?
我找不到有关如何使用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年左右,因此目前不是问题。问题在于,旧的访问令牌过期后将无法创建新的访问令牌,并且我无法执行任何经过身份验证的用户操作。
是否可以快速检查令牌是否有效-如果无效,请刷新令牌?
解决方法
我查看了“fetchauthsession”的源码,将异步模式改为同步模式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。