Как аутентифицировать пользователя в браузере с помощью AWS Cognito? - PullRequest
0 голосов
/ 26 мая 2018

Мне нужно аутентифицировать пользователей в браузере (не в мобильном приложении), используя AWS Cognito с именем пользователя / паролем, а не FB / google IdProviders.

Есть много документов, но они кажутся отдельными блоками, которые либо неполны, либо не соответствуют требованиям, либо не соответствуют друг другу: (

Я создал Cognito User Pool, затем Identityобъединить и связать userPool с idPool, затем я застрял. Не знаю, какую библиотеку использовать и как ее использовать. Ближе всего я нахожу:

  • https://aws.amazon.com/sdk-for-browser/ но мой опытнедостаточно, чтобы преобразовать их сэмплы FB в неиспользуемые FB
  • https://github.com/aws/aws-amplify, но с помощью этой библиотеки мне придется изучать React / Angular с самого начала (я не сперваконечный разработчик, извините), и я понятия не имею, как преобразовать их образцы на основе npm в интерфейсный javascript (npm для NodeJS, таким образом, back-end, не так ли?).

ВсеМне нужна простая HTML-форма с именем пользователя / паролем, отправка запроса в Cognito и способ проверки правильности пароля при загрузке следующей страницы. Если это имеет значение, я буду использовать AWS Lambda в качестве серверной части для обработки будущих задач.

Как я могу это сделать?Есть ли учебник / документация для моего случая?Спасибо.

1 Ответ

0 голосов
/ 28 мая 2018

Вы можете использовать AWS Cognito UserPools Hosted UI для вашего случая использования.Простейшая форма аутентификации - использование неявного предоставления.

Для получения дополнительной информации о настройке размещенного пользовательского интерфейса см. Добавление приложения для включения размещенного веб-интерфейса. .Это создаст UserPool, где пользователи могут зарегистрировать их самостоятельно (если вы планируете ограничить это, вам нужно будет либо добавить пользователей с помощью AWS Web Console, Cognito UserPools или с помощью их SDK)

Шаги следующие.

  • Настройте Cognito Hosted UI и зарегистрируйте домен своего приложения.Это создаст страницы входа / регистрации для вас, где каждый из них будет иметь уникальный URL.Что нужно сделать, если пользователь не аутентифицирован (давайте обсудим, как его обнаружить позже), вам нужно перенаправить пользователя на страницу входа в систему.
  • В URL-адресе для входа также необходимо указатьURL-адрес обратного перенаправления к приложению, чтобы после успешного входа в систему Cognito перенаправлял пользователя обратно в приложение, предоставляющее токен в строке запроса.
  • Затем вы можете получить доступ к id_token из приложения и использовать его.для запроса к бэкэнду.
  • Поскольку id_token является токеном JWT, вы можете проверить его на своем Бэкенде, используя открытый ключ, доступный в конечной точке токена Cognito .
  • Для реализацииДля проверки JWT вы также можете обратиться к Cognito JWT Token validator NodeJS module.

Примечание: Если вам нужно, чтобы пользователь входил в систему в течение более длительного периода времени (чем 1 час), вам может понадобиться использовать поток Code Grant, который будет возвращать токен обновления, который можно использовать для программного получения новых id_tokens.

...