配置JWT授权器时Serverless Offline报错:仅支持从请求头获取JWT
解决Serverless Offline JWT授权器报错问题
针对你遇到的Error: Serverless Offline only supports retrieving JWT from the headers (undefined)报错,提供以下几个解决思路:
- 确认请求头格式:确保请求时携带了
Authorization头,且格式为Bearer <你的JWT令牌>,Serverless Offline需要从这个头里读取令牌,没检测到就会报undefined。 - 修正
identitySource写法:把配置里的$request.header.Authorization改成$request.headers.Authorization(注意是复数headers),Serverless Offline对HTTP API的JWT授权器字段解析更适配复数形式的写法。 - 替换占位符为真实值:检查
issuerUrl里的<region>、<user_pool_id>,以及audience里的<app client id>,全部替换成你Cognito用户池的真实信息,占位符未替换会导致Offline无法正确识别授权器配置。 - 升级Serverless Offline版本:旧版本的Serverless Offline对HTTP API JWT授权器的支持存在兼容性问题,升级到最新版本可修复这类bug。
调整后的示例配置:
provider: name: aws region: us-east-1 stage: dev apiGateway: binaryMediaTypes: - 'multipart/form-data' httpApi: authorizers: someJwtAuthorizer: type: jwt identitySource: $request.headers.Authorization issuerUrl: https://cognito-idp.us-east-1.amazonaws.com/真实用户池ID audience: - 真实应用客户端ID ... functions: animals: handler: lambdas/animals.animalsHandler events: - httpApi: path: /api/animals method: get authorizer: name: someJwtAuthorizer
内容的提问来源于stack exchange,提问作者user737163
相关产品推荐
相关产品推荐

