You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用Curl向AWS Lambda端点传递Bearer授权头失败排查

解决curl请求Lambda端点时的Bearer授权令牌问题

Hey,我来帮你捋捋这几个curl请求的问题,以及正确的修复方式:

逐个分析你的尝试错误

  • 尝试1:问题出在你的令牌包含空格,而shell会把空格当作参数分隔符,导致Authorization头被拆成了多个零散的部分,服务端自然无法正确解析。你需要把整个头信息用引号括起来,让shell把它当成一个完整的参数传递。
  • 尝试2:你写错了认证头的字段名!标准的Bearer认证头是Authorization,而不是Authentication,服务端找不到正确的认证字段,所以提示“缺失认证令牌”。
  • 尝试3:Bearer令牌的格式是Bearer <令牌内容>,不需要额外加=或者Token字样,你完全搞错了认证头的规范格式。

正确的curl命令写法

你只需要把包含空格的Authorization头用双引号(或单引号)完整包裹起来,确保令牌作为一个整体被传递:

curl -H "Accept: application/json" -H "Authorization: Bearer this is my secret string token" https://myurl.execute-api.us-east-1.amazonaws.com/beta/lambdaip

如果你的令牌里包含单引号这类特殊字符,改用单引号包裹头内容会更稳妥:

curl -H 'Accept: application/json' -H 'Authorization: Bearer this is my secret string token' https://myurl.execute-api.us-east-1.amazonaws.com/beta/lambdaip

另外补充:如果你的Lambda端点要求用POST方法,记得加上-X POST参数,但从你的错误信息来看,即使是GET请求也能触发认证校验,所以先确保头格式正确就可以解决核心问题啦。

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

火山引擎 最新活动