【问题标题】:Link AWS Cognito ID to AWS RDS Instance将 AWS Cognito ID 链接到 AWS RDS 实例
【发布时间】:2018-01-19 00:44:54
【问题描述】:

我对 AWS 很陌生,我尝试设计第一个 API。我倾向于使用 AWS 的以下元素:Cognito(用于用户身份验证)、Lambda(用于 REST API)和 RDS(用于 postgres)。我开发了一个实体关系模型,其中包括一个用户实体。这个实体将有一个 idemail密码name(和其他一些东西)。

  1. 问题:此实体能否在 Cognito 中存储/处理?

该实体应该有一个 id,它将在 erm 图的其他部分用作外键。

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

  1. 问题:这可能吗?

Afaik Cognito 仅支持 Facebook、Google 和 Amazon 帐户。但我也可以添加我自己的authentification method 。所以我必须走这条路。

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

【问题讨论】:

    标签: amazon-web-services aws-lambda amazon-rds aws-cognito


    【解决方案1】:

    当您第一次使用create a user pool 时,您可以指定要与您的帐户关联的属性。您还可以添加自定义属性。你如何得到这些取决于上下文。有一个javascript sdk https://github.com/aws/amazon-cognito-identity-js

    查看使用案例以了解如何访问属性。如果您想从命令行执行此操作,请安装 AWS 命令​​行工具和 cognito-idp

    这可能有点麻烦,因此了解具体的上下文会有所帮助。 Java等也有一个。

    【讨论】:

    • 上下文到底是什么意思?我将(或想要)使用 TypeScript 开发一切。
    • 对,与您创建的 UserPool 交互有多种方式。如果您是从客户端执行此操作,那么您将使用上面的 JavaScript api。你在使用像 webpack 这样的框架吗?然后首先为您的项目安装节点包npm install --save amazon-cognito-identity-js。访问它的一种方法是包含模块var AmazonCognitoIdentity = require('amazon-cognito-identity-js');,然后像var cognitoUser = AmazonCognitoIdentity.CognitoUser;'一样引用它
    • 您可以访问在创建 UserPool 时包含的属性,例如 cognitoUser.getUserAttributes(function(err, result) { if (err) { alert(err); return; } for (i = 0; i < result.length; i++) { console.log('attribute ' + result[i].getName() + ' has value ' + result[i].getValue()); } });
    • 嗯,也许我们在谈论对方?! :) 我想在用户和某个实体之间提供安全连接。一切都发生在服务器端,用户由 Cognito 处理,实体由 RDS 处理(在我看来)。例如。存储在 RDS 实体中的用户 ID 的完整性。
    • 这是一个使用 Amazon DynamoDB 的示例aws.amazon.com/blogs/developer/… 这是否更接近您的要求?
    猜你喜欢
    • 2020-08-27
    • 2019-01-02
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-05
    相关资源
    最近更新 更多