Ответ лямбда-авторизатора с использованием async / await в Node.js - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь создать лямбда-авторизатор в aws, используя node.js async / await вместо обратных вызовов, но нет информации о том, как создать HTTP-ответ, возвращаемый в API Gateway.Например, если я возвращаю это:

{
  statusCode: 401
}

Шлюз API, кажется, не понимает и возвращает клиенту ошибку 403:

{
    "statusCode": 403,
    "error": "Forbidden",
    "message": "No principalId set on the Response"
}

Кто-нибудь знает, как это сделатьчто здесь описано: https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html но с использованием асинхронного / ожидающего?

Заранее спасибо!

РЕДАКТИРОВАТЬ:

Путь квернуть ошибку 401 - это просто выдать ошибку, подобную этой: throw new Error("Unauthorized") И если пользователь явно запрещает / разрешает, просто возвращает политику JSON.

1 Ответ

0 голосов
/ 11 марта 2019

Из того, что я прочитал (некоторые примеры кода были бы полезны), звучит так, будто вы не называете обратный вызов правильно или он не вызван в нужном месте.Вы можете использовать

callback("Some error message.");

, чтобы отправить ответ обратно с кодом состояния 401.Вы также можете изменить это, выполнив что-то вроде:

var response = {
  statusCode: 401, /* some number */        
  body: "Oops!" /* some message */
}; 
callback(null, response); 

Я бы зашел на эту страницу для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...