Так что я занимался этим довольно долго, и я все еще чувствую, что просто бегаю вокруг себя :)
У меня есть шлюз API в AWS, который использует пул пользователей в качестве авторизатора.
Я знаю AWS-Amplify, поскольку я использую его для своей части интерфейса React, но я не могу найти элегантный способ входа с учетными данными Cognito в node.js.
Я пытался использовать эту библиотеку , которая является ответвлением отчасти устаревшего amazon-cognito-identity-js, предшественника AWS-Amplify.
Позволяет использовать метод .authenticateUser
и возвращает три токена:
Затем я попытался использовать axios (на самом деле это не имеет значения), чтобы сделать простой запрос GET
с заголовком авторизации, установленным на idToken
, который я получил раньше.
Этот токен работает при тестировании авторизатора на консоли API Gateway, но не работает с узла ...
Возвращенная ошибка:
Для заголовка авторизации требуется параметр «Credential». Для заголовка авторизации требуется параметр «Подпись». Для заголовка авторизации требуется параметр «SignedHeaders». Заголовок авторизации требует наличия заголовка X-Amz-Date или Date.
Поэтому я попытался подписать запрос с помощью aws4, который также не помог, он возвратил ошибку, в которой говорилось, что их подпись не совпадает с моей, и проверил мой secretAccessKey ...
Неужели это так сложно? Я просто хотел написать простое PoC-приложение, которое тестирует мой лямбда-API, все это кажется слишком большой работой для чего-то такого простого ...