0

在 .Net Core 3 中编写 AWS Cognito Pre-Authentication lambda 触发器时需要一些帮助。我能够在 cognito 请求中将正确的属性作为“validationData”属性的一部分传递。当验证属性不满足条件时,我需要将“UnauthorizedResponse”发送回我的前端。但是,当我尝试从我的 .net 核心处理程序返回一个错误对象时,我最终会遇到“InvalidLambdaResponse”异常。任何帮助或示例代码都将非常有用。

这是我的代码片段 -

public object FunctionHandler(JObject request, ILambdaContext context)
    {
        LambdaLogger.Log($"JObject: {request}");
        var input = request;
        var userId = input["userName"];
        LambdaLogger.Log($"Calling function: {context.FunctionName}\\n");
        LambdaLogger.Log($"Input userid: {userId}\\n");
        string strUserId = ((Newtonsoft.Json.Linq.JValue)userId).Value.ToString();
        var status = Util.FetchCognitoUser(strUserId); \\call to fetch user properties
        LambdaLogger.Log($"Pre auth execution complete");
        if (status)
        {
            return request;
        }
        else
        {
            request["response"]["statuscode"] = "400";
            request["response"]["statusmessage"] = "NotAuthorizedException";
            return request;
        }
    }
4

1 回答 1

0

一些试验和错误终于帮助了我。它并不像看起来那么困难。您只需抛出异常即可实现所需的功能。:)

我只是从上面发布的示例代码的 else 部分中抛出了一个异常。而且我能够捕获“PreAuth 失败异常”

else
    {
        throw new AmazonCognitoIdentityException("PreAuthentication Failure");
    }
于 2020-07-17T14:54:56.093 回答