首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AWS Cognito和DynamoDB

AWS Cognito和DynamoDB
EN

Stack Overflow用户
提问于 2021-03-26 23:30:12
回答 1查看 35关注 0票数 0

我已经找了很多,但我找不到一个看似非常简单的问题的(明确的)解决方案。

我正在尝试创建一个包含特定于用户的数据(例如,他们最喜欢的颜色等)的数据库。用DynamoDB创建它很好,编辑它也很好;我的问题是首先要识别用户(我使用的是Cognito),我找不到安全有效的“最佳实践”。

换句话说,我有登录部分和数据库部分。但是,如何在任意页面上获取登录用户是谁,以便在数据库中获取适当的行(例如,拥有一个以"sub“作为主键的表)。

到目前为止,我找到了一个关于使用JWT和随身携带会话令牌的小指南,我可以用它来获取用户信息。我不太确定这是安全的还是良好的做法,我完全不知道该怎么做。任何关于最佳实践的建议,或者什么是“正确”的方式都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2021-03-26 23:41:42

“如何在任意页面上获取谁是登录用户”

这完全取决于您使用的框架。例如,如果您使用Spring Security和Cognito构建了一个AWS应用程序,则可以在Java控制器中使用如下代码轻松获取登录用户:

代码语言:javascript
运行
复制
@RequestMapping(value = "/user", method = RequestMethod.GET)
@ResponseBody
public String getItems(HttpServletRequest request, HttpServletResponse response) {

  String logUser =  request.getUserPrincipal().getName();
  return logUser;
}

我刚刚用一个使用Cognito的Java web应用程序测试了这个逻辑,它工作得很好:

您需要为您用来构建需要用户登录的应用程序的框架找到等效的逻辑。

一旦您有了用户名,就可以使用DynamoDB接口来查找更多的用户详细信息。如果您使用的是Java,则可以使用Java API来执行此操作。如果使用JavaScript,请使用JavaScript接口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66819859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档