Лямбда-триггер предварительной аутентификации AWS Cognito с использованием .Net Core 3 - возвращает исключение InvalidLambdaResponse.

Нужна помощь с написанием лямбда-триггера AWS Cognito Pre-Authentication в .Net Core 3. Я могу передать правильные атрибуты как часть атрибута «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;
        }
    }



Ответы (1)


Наконец, мне помогли несколько проб и ошибок. Это не так сложно, как казалось. Вы получаете необходимую функциональность, просто генерируя исключение. :)

Я просто выбросил исключение из другой части приведенного выше примера кода. И мне удалось зафиксировать «исключение сбоя PreAuth»

else
    {
        throw new AmazonCognitoIdentityException("PreAuthentication Failure");
    }
person Anand    schedule 17.07.2020