Войдите в систему с учетными данными Cognito в Node.js и вызовом шлюза API. - PullRequest
0 голосов
/ 24 апреля 2018

Так что я занимался этим довольно долго, и я все еще чувствую, что просто бегаю вокруг себя :)

У меня есть шлюз API в AWS, который использует пул пользователей в качестве авторизатора. Я знаю AWS-Amplify, поскольку я использую его для своей части интерфейса React, но я не могу найти элегантный способ входа с учетными данными Cognito в node.js.

Я пытался использовать эту библиотеку , которая является ответвлением отчасти устаревшего amazon-cognito-identity-js, предшественника AWS-Amplify.

Позволяет использовать метод .authenticateUser и возвращает три токена:

  • токен идентификатора Cognito

  • Жетон обновления Cognito

  • токен доступа Cognito

Затем я попытался использовать axios (на самом деле это не имеет значения), чтобы сделать простой запрос GET с заголовком авторизации, установленным на idToken, который я получил раньше.

Этот токен работает при тестировании авторизатора на консоли API Gateway, но не работает с узла ...

Возвращенная ошибка:

Для заголовка авторизации требуется параметр «Credential». Для заголовка авторизации требуется параметр «Подпись». Для заголовка авторизации требуется параметр «SignedHeaders». Заголовок авторизации требует наличия заголовка X-Amz-Date или Date.

Поэтому я попытался подписать запрос с помощью aws4, который также не помог, он возвратил ошибку, в которой говорилось, что их подпись не совпадает с моей, и проверил мой secretAccessKey ...

Неужели это так сложно? Я просто хотел написать простое PoC-приложение, которое тестирует мой лямбда-API, все это кажется слишком большой работой для чего-то такого простого ...

...