如何将AWS Cognito与自定义NodeJS服务器一起使用?

时间:2017-12-19 18:47:52

标签: node.js angular amazon-web-services aws-cognito

我正在使用Angular和NodeJS构建应用程序。

我已经听说过AWS Cognito,并希望在我的应用中使用它。然而,在文档中它是如何工作的还不清楚。

There is an example关于如何将Cognito与Angular SPA一起使用,但没有任何关于我如何使用它来验证我的后备NodeJS服务器上的用户的信息。

NodeJS如何知道用户是否已登录?我可以想到几个可能的答案,但没有出现在文档中,并且令人惊讶的是没有代码示例。所以我决定在这里投入大量时间进行反复试验。

1 个答案:

答案 0 :(得分:4)

您可以在后端NodeJS服务器中使用AWS Cognito Userpools来验证用户身份。步骤如下。

  • 创建Cognito Userpool并设置App Client。
  • 如果您希望用户直接允许对AWS服务进行受控访问,请创建Cognito用户池(可选择Cognito联合身份)。
  • 配置Cognito Hosted UI(内置登录页面和可选的注册页面)。
  • 对于用户登录,请将用户重定向到此域名网址以进行登录。
  • 使用重定向网址将App Client设置为您的App for Oauth2流程。
  • 在用户登录后,您将在URL中收到一个id_token(例如In In implicit grant flow),您可以将其转发到NodeJS服务器,您可以使用NodeJS中间件对其进行验证。
  • 您可以决定是将id_token存储在cookie还是存储在浏览器存储中,并相应地为后续请求实施存储和验证。

注意:由于id_token是标准的JavaScript Web令牌(JWT),因此您可以找到一个库来验证它。有关详细信息,请参阅AWS documentation Using Tokens with User Pools