【发布时间】:2020-04-19 13:45:03
【问题描述】:
我正在使用 AWS 提供的 API Gateway,并且我有一个用于删除方法的无服务器(框架)端点。客户端使用的是axios,配置如下:
await Axios.delete(`${apiEndpoint}/todos/${todoId}`, {
withCredentials: true,
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${idToken}`
}
}).then..
此删除请求失败 (403) 显然是因为 OPTIONS 预检失败:
{"message":"缺少身份验证令牌"}
在这种情况下,最佳做法是什么?
-
我是否应该强制/修复 Axios 客户端在 OPTIONS 中发送 Auth 令牌,以及如何做到这一点?
-
或者我应该在 aws 网关端点中禁用 OPTIONS 的身份验证,以及如何做到这一点?
DeleteTodo:
handler: src/lambda/http/deleteTodo.handler
events:
- http:
method: delete
path: todos/{todoId}
authorizer: Auth
iamRoleStatements:
编辑: 添加了 cors: true 没有在 AWS Gateway 上为 todos/{todoId} 创建 OPTIONS,也许这是无服务器框架的错误? (我必须为 OPTIONS 明确定义一个端点,这是不行的。
Framework Core: 1.60.1
Plugin: 3.2.6
SDK: 2.2.1
Components Core: 1.1.2
Components CLI: 1.4.0
【问题讨论】:
-
我使用 AWS 无服务器框架处理我的个人项目,并解决了 MissingAuthenticationToken 和 CQRS 问题。我确实修改了 serverless.yml 和响应标头。我希望这会有所帮助,ijianhuang.wordpress.com/2019/12/31/…。
标签: aws-lambda axios aws-api-gateway serverless-framework serverless