You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

API Gateway授权问题:网站调用返回401 Unauthorized寻求解决方案

解决方案建议

1. 排查授权器(Authorizer)的配置与前端请求匹配问题

  • 确认授权器类型:如果是Lambda授权器,检查前端请求是否正确携带了授权器要求的凭证(比如JWT Token放在Authorization头,或自定义请求头),控制台测试会跳过凭证校验,前端必须严格按授权器规则传参。
  • 验证授权器返回的IAM策略:在CloudWatch日志里查看授权器Lambda的执行日志,确认返回的策略是否允许当前请求的API资源(格式类似arn:aws:execute-api:region:account-id:api-id/stage/method/resource),资源路径不匹配会直接返回401。
  • 清除授权器缓存:若授权器开启了缓存,之前的错误策略可能被缓存,可临时关闭缓存或手动刷新后再测试。

2. 检查API Key的完整配置链路

  • 绑定API Key到Usage Plan:创建API Key后,必须将其关联到对应的Usage Plan,且Usage Plan要绑定你的API Gateway阶段(Stage)。
  • 前端请求携带x-api-key头:确保前端POST请求的请求头包含x-api-key: 你的API Key值,注意头名称为小写的x-api-key,不要写错。
  • 启用方法的API Key校验:在API Gateway对应POST方法的设置里,确认API Key Required选项设为true,否则API Key配置不会生效。

3. 处理跨域(CORS)预检请求的授权问题

  • OPTIONS方法无需授权:前端跨域POST请求会先发送OPTIONS预检请求,该请求不会携带授权凭证,必须确保API Gateway的OPTIONS方法未绑定任何授权器,且API Key Required设为false,否则预检请求返回401会导致后续POST请求无法执行。
  • 配置正确的CORS响应头:在API Gateway的CORS设置里,确保允许的请求头包含你使用的授权头(比如Authorization、x-api-key),否则浏览器会拦截响应。

4. 验证权限策略的正确性

  • 检查Lambda执行角色:确认你的Lambda函数执行角色拥有lambda:InvokeFunction权限,且API Gateway的服务角色(若有)有权限调用该Lambda。
  • 授权器Lambda的角色权限:如果用的是Lambda授权器,其执行角色需要logs:CreateLogGroup、logs:CreateLogStream、logs:PutLogEvents权限,确保能生成日志用于排查。

5. 确认测试与生产端点的一致性

  • 检查前端请求的API端点:确保前端调用的是API Gateway部署后的正式端点(格式类似https://api-id.execute-api.region.amazonaws.com/stage),而非控制台测试用的临时端点,两者配置可能存在差异。

内容的提问来源于stack exchange,提问作者By1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 23:17:20