我知道这可能为时已晚。但是对于遇到此问题的人,您可以通过两种方式来保护您的 API 端点,具体取决于您的场景。
如果您当前没有用户目录(登录/注册系统),您可以使用 Cognito 用户池来保护您的 API。步骤是
- 在 AWS Cognito 控制台中,创建一个 Cognito 用户池
- 在 API Gateway 控制台中,创建一个 Cognito 用户池授权者
- 在您的 JS 代码中,使用 Cognito 用户池对用户进行身份验证,这将返回一个用户令牌,然后您可以在对 api 进行 Ajax 调用时在 Authorization 标头中使用该令牌。
这是有关该过程的分步教程。我建议从创建 Cognito 用户池一章开始。
http://serverless-stack.com/chapters/create-a-cognito-user-pool.html
第二种情况是,如果您已经拥有 Facebook/Twitter 或任何其他社交登录名的用户目录。您将需要创建一个 Cognito 身份池。您可能会发现此答案很有用。
要使用联合身份,请将 API Gateway 方法设置为使用“AWS_IAM”授权。您使用 Cognito 创建角色并将其与您的 Cognito 身份池相关联。然后,您使用身份和访问管理 (IAM) 服务授予此角色调用您的 API 网关方法的权限。