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

AWS API Gateway调用Lambda遇Axios授权头错误:缺少等号的键值对

问题解决:AWS API Gateway调用Lambda授权头格式错误

核心原因

Lambda中配置的认证密钥校验逻辑,期望Authorization头是**key=value**的键值对格式,但你当前通过Axios传递的是Bearer {auth_token}格式,导致校验时因缺少等号报错。

修复步骤

1. 修正代码语法错误

你的requestData对象存在语法错误,赋值应该用冒号而非等号:

const requestData = {
  blah: 'blah' // 把=改成:,值建议用引号包裹
};

2. 适配授权头格式(二选一)

方案A:修改Axios请求头,匹配Lambda校验逻辑

如果要保留Lambda现有的校验规则,将Authorization头改为Lambda期望的键值对格式。比如Lambda校验的key是auth_token,则修改headers:

const headers = {
  'Authorization': `auth_token=${authToken}`, // 替换成Lambda实际校验的key名
  'Content-Type': 'application/json',
};

方案B:修改Lambda认证逻辑,支持Bearer格式

如果想继续使用Bearer {token}的标准格式,在Lambda中解析授权头时先提取token:

// Lambda示例代码(Node.js)
exports.handler = async (event) => {
  const authHeader = event.headers?.Authorization;
  if (!authHeader || !authHeader.startsWith('Bearer ')) {
    return {
      statusCode: 401,
      body: JSON.stringify({ message: 'Unauthorized' })
    };
  }
  // 提取Bearer后面的token
  const authToken = authHeader.split('Bearer ')[1].trim();
  
  // 执行你的密钥校验逻辑
  if (authToken !== '预期的密钥') {
    return {
      statusCode: 403,
      body: JSON.stringify({ message: 'Invalid token' })
    };
  }
  
  // 后续业务逻辑
  return {
    statusCode: 200,
    body: JSON.stringify({ message: 'Success' })
  };
};

验证

修改后重新调用Axios,检查CloudWatch日志确认授权头是否符合Lambda的校验要求,同时API Gateway测试功能可以继续用来对比验证。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 19:05:00