将AWS Cognito ID链接到AWS RDS实例

6

我对AWS还比较陌生,正在尝试设计第一个API。我倾向于使用以下AWS元素:Cognito(用于用户认证)、Lambda(用于REST API)和RDS(用于Postgres)。我已经开发了一个实体关系模型,其中包括一个用户实体。该实体将具有id、电子邮件、密码、姓名(以及其他一些内容)。

  1. 问题:这个实体可以被存储/处理在Cognito中吗?

该实体应该有一个id,该id将作为ERM图中其他部分的外键使用。

我的要求:用户实体将完全由Cognito处理,但是用户的id可以在我的RDS中使用。

  1. 问题:这种情况是否可行?

据我所知,Cognito仅支持Facebook、Google和Amazon帐户。但是我也可以添加自己的身份验证方法。所以我必须走这条路线。

  1. 问题:这些实体将存储在哪里?Cognito可以处理吗?还是我必须将用户实体存储在我的RDS中?如果是这样,我为什么需要Cognito?
1个回答

1
当您首次创建用户池时,可以指定要与您的帐户关联的属性。您还可以添加自定义属性。如何获取这些取决于上下文。有一个JavaScript SDK https://github.com/aws/amazon-cognito-identity-js
查看用例以了解如何访问属性。如果您想从命令行执行此操作,请安装AWS命令行工具和cognito-idp
这可能有点麻烦,因此最好知道特定的上下文。也有一个Java等。

你所说的“context”具体是什么意思?我将(或想要)用TypeScript开发所有内容。 - Philipp
对的,与您创建的UserPool进行交互有不同的方式。如果您是从客户端进行操作,则可以像上面那样使用JavaScript API。您是否正在使用像webpack这样的框架?然后为您的项目安装节点包 npm install --save amazon-cognito-identity-js。然后访问它的一种方法是包括模块 var AmazonCognitoIdentity = require('amazon-cognito-identity-js'); 然后像 var cognitoUser = AmazonCognitoIdentity.CognitoUser;' 这样引用它。 - chris2187
嗯,也许我们之间存在交流偏差?! :) 我想在用户和特定实体之间提供安全连接。所有操作都在服务器端进行,其中用户由Cognito处理,实体由RDS处理(在我的思维中)。例如,在RDS实体中存储的用户ID的完整性。 - Philipp
这是一个使用Amazon DynamoDB的示例:https://aws.amazon.com/blogs/developer/building-a-serverless-developer-authentication-api-in-java-using-aws-lambda-amazon-dynamodb-and-amazon-cognito-part-1/,这是否更接近您所寻找的内容? - chris2187
我会看一下。虽然不完全是我想要的,但可能有所帮助。我的当前想法是使用CognitoPool触发器(确认后),它将在我的RDS中创建一个受限实体。 - Philipp
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接