use*_*224 10 amazon-cognito aws-amplify
在每次调用后端之前,我过去常常Auth.currentAuthenticatedUser()获取idToken.jwtToken它并将其在我的请求标头中传递给后端服务器以获取数据。
在我的用例中使用Auth.currentSession()而不是使用有区别Auth.currentAuthenticatedUser()吗?Auth.currentAuthenticatedUser()令牌过期后是否刷新令牌,类似于Auth.currentSession()?
amplify auth 的文档仍然很差,所以我查看了@aws-amplify/auth和amazon-cognito-identity-js包的源代码,结果如下:
currentAuthenticatedUser将尝试从本地存储检索经过身份验证的用户信息(除非您的存储选项已配置)。如果存储中不存在,那么它将进行 api 调用来检索用户信息,其中涉及自动刷新该过程中的用户会话。currentSession不会检查本地存储并始终调用 API,这还涉及在过期时自动刷新用户会话。因此,要直接回答您的问题,该Auth.currentAuthenticatedUser()方法并不总是为您提供有效的令牌。如果您的存储包含过期的令牌,它只会返回该令牌。这将需要您调用user.getSession()返回的用户对象来手动请求新的会话/令牌。我建议您使用Auth.currentSession(),因为这会自动处理令牌刷新并始终返回有效的令牌。
| 归档时间: |
|
| 查看次数: |
661 次 |
| 最近记录: |