【发布时间】:2018-08-11 07:55:05
【问题描述】:
我刚开始使用 Amazon Cognito,我想将它用于我的 Web 应用程序。我想开发一个无状态应用程序,在其中我使用 Cognito 注册/登录,然后在其余请求中使用 JWT 令牌。
我已经使用amazon-cognito-identity-js 包在 Node.js 中实现了注册和登录流程,然后使用 JWT 令牌使用 aws-sdk 调用 lambda 函数。到这里为止,一切都和预期的一样。
但现在问题在于不同的用户操作,如get attribute、verify attribute、update password 等,如所列@
https://docs.aws.amazon.com/cognito/latest/developerguide/using-amazon-cognito-user-identity-pools-javascript-examples.html
所有这些操作都需要cognitoUser 对象,并且在文档中它们使用userPool.getCurrentUser(); 表达式。
我在某处读到此方法返回最后一个经过身份验证的用户。所以我认为userPool.getCurrentUser();这个表达式会引起冲突。例如,如果 UserB 在 UserA 和 UserA 尝试更新他的密码后登录,它将无法正常工作。
有人可以建议我有什么可能的解决方案吗?
- 我应该将
cognitoUser对象存储在服务器端的会话中吗? [这个解决方案打破了我的无状态要求,我将不得不在服务器端维护会话。] - 有没有办法使用 JWT 令牌执行这些操作?
如果您能想到任何其他更好的方法来在 Web 应用程序中实现 Cognito,请提出建议。
谢谢。
【问题讨论】:
标签: amazon-web-services amazon-cognito