小编Sim*_*ian的帖子

401 的自定义响应 Lambda 授权器

Unauthorized使用错误参数中的字符串从 Lambda 授权方调用 Lambda 回调函数返回带有正文的 401 响应:

{ "message": "Unauthorized" }

尝试在响应中使用任何其他字符串会导致响应:

{ "message": null }

相反,如果您在回调的结果参数中返回一个拒绝策略文档,您将得到一个 403 响应,类似于:

{ "message": "Unable to access resource with an explicit deny" }

环顾四周后,您似乎需要配置网关响应以从 Lambda 授权方返回自定义响应,我已为 403 响应工作,但无法弄清楚如何为 401 执行此操作。

对于 403,我使用模板创建了一个网关响应:

{\"message\":\"$context.authorizer.stringKey\"}

然后在结果对象上我设置了以下内容

ResultObject.context.stringKey = 'My custom response'

这有效并记录在此处

但是,对于 401,因为我没有返回策略文档,所以我不知道如何使用自定义响应。我创建了与 403 相同的网关响应,但是如果我在错误参数中使用任何字符串(“未授权”除外)点击回调,我会收到空​​消息。我无法在结果参数中返回,因为这需要是包含策略文档的响应结构。

关于如何使用 401 返回自定义响应的任何想法?

amazon-web-services aws-lambda aws-api-gateway lambda-authorizer

6
推荐指数
1
解决办法
4010
查看次数

按自定义顺序按键对数组进行排序

我有以下多维数组

[
    'June 2015' => [
        'LOW' => [160.50],
        'MEDIUM' => [0.00],
        'HIGH' => [60.80]
    ],
    'July 2015' => [
        'MEDIUM' => [226.00],
        'HIGH' => [263.00],
        'LOW' => [121.96]
    ]
]
Run Code Online (Sandbox Code Playgroud)

我需要按每个内部数组的键对它们进行排序,以便它们按低、中、高的顺序排列(第一个偶然是正确的)。

我尝试了从这里获取并调整的以下代码:

function cmp($a, $b){
        $a = preg_replace('@^(LOW|MEDIUM|HIGH) @', '', $a);
        $b = preg_replace('@^(LOW|MEDIUM|HIGH) @', '', $b);
        return strcasecmp($a, $b);
    }

    foreach($live_quotations as $exp_conversion_date => $Aconversion_likelihood){
        foreach($Aconversion_likelihood as $conversion_likelihood => $quotation_values){
    
            uksort($live_quotations[$exp_conversion_date], "cmp");
    
        }
    }
Run Code Online (Sandbox Code Playgroud)

但这将它们排序为高、中、低(按字母顺序升序)。如果我更改 cmp 函数中的顺序并不重要,它们总是以这种方式排序。我认为我没有正确理解这个 uksort 或 cmp 函数。

php arrays sorting

5
推荐指数
1
解决办法
2416
查看次数