所以这是我的场景,我有一个在 AWS 上使用无服务器架构开发的 Web 应用程序。我使用 S3 来托管我的静态内容,我的所有服务器端代码都在 Lambda 函数中实现并通过 API Gateway 访问。现在我正在尝试使用 Cognito 和用户池来实现身份验证层。
我一直按照此页面上的说明创建用户池。完成后,我可以通过在浏览器的地址栏中输入这样的 URL 来测试我的用户池:
https://my_subdomain_under_aws/login?response_type=code&client_id=my_app_client_id&redirect_uri=my_callback_url
重要的部分(对我来说)是response_type=code
根据相同的文档也可以是response_type=token
. 在这一点上,我不确定它们的区别是什么以及我应该如何在它们之间进行选择。
无论如何,打开上述 URL 将带您进入 AWS 默认登录表单。一旦用户成功通过身份验证,浏览器将被重定向到提供redirect_uri
的额外参数,如下所示/?code=12345678-1234-1234-1234-123456789012
。在这一点上,我想我应该提取code
(在客户端使用 Javascript)并将其传递给 API 网关并使用它来验证用户。但我不确定如何。我发现这个页面解释了令牌的步骤,但是代码呢?