如何在AWS API Gateway中自定义Cognito用户池授权者的未经授权的401 JSON响应

时间:2020-02-13 09:49:01

标签: amazon-web-services aws-lambda aws-api-gateway amazon-cognito amazon-api-gateway

我在AWS API Gateway中添加了 Cognito用户池作为授权者。 然后,我使用id_token测试了该授权者,并且工作正常。 我已经使用lambda函数在Cognito用户池中进行用户注册/登录。

现在我的问题是,当id_token过期或cognito授权者无法验证当前用户时,如何自定义错误响应。目前我只得到

Create or replace FUNCTION get_complete_employee (&in_employee_id IN NUMBER) 
    AS person_details;
    BEGIN 
    SELECT * --'Name-'||first_name||' '|| last_name
    into person_details
    FROM employees;   
   Dbms_output.put_line(person_details);
    -- END get_complete_employee;
    end;

OR

{
    "message": "Unauthorized"
}

具有 401 响应

1 个答案:

答案 0 :(得分:1)

您可以使用API​​网关中的Gateway Responses来修改HTTP状态代码和返回给客户端的响应。

默认情况下,对于您描述的场景,响应为“未经授权”,状态码为401。要更改此设置-

  1. 转到您的API左列的“网关响应”。
  2. 选择“未经授权”,然后单击右上角的“编辑”。
  3. 单击“响应模板”下的“ application / json:”。
  4. 在“响应正文模板”部分中将消息修改为{"message":"Your custom message"}(请参见下面的屏幕截图)。
  5. 部署API并等待一分钟,以传播更改。

enter image description here