获取 Cognito 令牌的代码应该在哪里(前端或后端)

Where should be code for for getting Cognito token (frontend side or backend side)

我的应用程序在 angular 中有前端代码。此前端应用程序调用后端 API(spring-boot).

我已经在 Application Load Balancer(ALB) 后面的 EKS 中部署了它

请求流程: Route53 -> ALB -> 前端目标组或后端目标组。

我想在 ALB 设置 AWS Cognito 以进行用户身份验证。我将从我的活动目录中联合用户池。我只想允许那些用户使用 username/password 登录网站。我想确保只能使用有效的 login/token.

调用后端 API

问题: 应该使用什么资助类型? (授权码grant/implicitgrant/client凭据)

我应该从哪里获取代码以从 cognito 获取令牌?在前端(angular)还是后端?

我是否需要保护后端 API,比如 API 只能使用令牌调用? 要么 只保护 angular 路由就足够了吗? (因为后端点在集群外部不可见,只能从前端调用它们 PODs) 例如, 我们可以在没有令牌的情况下允许 mywebsite/login, 任何其他页面(mywebsite/serach、mywebsite/home、mywebsite/product)只有在提供令牌时才允许

您的 angular 前端应使用授权码授予启动流程。 Cognito Identity SDK has some useful helpers for this but you can use any OIDC client SDK such as AppAuth.