Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何将AWS Cognito与自定义NodeJS服务器一起使用?_Node.js_Angular_Amazon Web Services_Aws Cognito - Fatal编程技术网

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

Node.js 如何将AWS Cognito与自定义NodeJS服务器一起使用?,node.js,angular,amazon-web-services,aws-cognito,Node.js,Angular,Amazon Web Services,Aws Cognito,我正在使用Angular和NodeJ构建一个应用程序 我听说过AWS Cognito,并想在我的应用程序中使用它。然而,文件中并不清楚它应该如何工作 关于如何将Cognito与Angular SPA结合使用,但没有关于如何使用它对我的备份NodeJS服务器上的用户进行身份验证的消息 NodeJS应该如何知道用户是否已登录?我可以想出几个可能的答案,但文档中没有出现,而且令人惊讶的是没有代码示例。因此,我决定在投入大量时间进行试错之前在这里提问。您可以在后端NodeJS服务器中使用AWS Cogn

我正在使用Angular和NodeJ构建一个应用程序

我听说过AWS Cognito,并想在我的应用程序中使用它。然而,文件中并不清楚它应该如何工作

关于如何将Cognito与Angular SPA结合使用,但没有关于如何使用它对我的备份NodeJS服务器上的用户进行身份验证的消息


NodeJS应该如何知道用户是否已登录?我可以想出几个可能的答案,但文档中没有出现,而且令人惊讶的是没有代码示例。因此,我决定在投入大量时间进行试错之前在这里提问。

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

创建Cognito用户池并设置应用程序客户端。 如果您希望您的用户直接允许对AWS服务的受控访问,可以创建一个Cognito用户池(可选Cognito联合身份)。 配置Cognito托管的UI内置登录页面和可选的注册页面。 对于用户登录,将用户重定向到此域URL进行登录。 为Oauth2流设置应用程序客户端,并将URL重定向到您的应用程序。 用户登录后,您将收到一个id_令牌,例如在URL中的隐式授权流中,您可以将其转发到您的NodeJS服务器,在那里您可以使用NodeJS中间件对其进行验证。 您可以决定是将id_令牌存储在cookie还是浏览器存储中,并为后续请求相应地实现存储和验证。
注意:由于id_令牌是标准的JavaScript Web令牌JWT,因此您可以找到一个库来验证它。有关详细信息,请参阅。

谢谢!但是“如果您希望您的用户直接允许对AWS服务进行受控访问”,这是什么意思呢?例如,假设您希望允许您的用户直接将文件上载到s3。用户需要临时访问凭据,这些凭据可以颁发给用户,用户可以直接从浏览器上载。如果要在用户池中注册用户,则需要将其连接到用户池的Cognito联合身份。