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

问题描述 投票:2回答:1

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

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

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

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

node.js angular amazon-web-services aws-cognito
1个回答
4
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.