Как пройти аутентификацию в AWS Cognito User Pool в Python? - PullRequest
0 голосов
/ 18 апреля 2020

У меня есть стационарный c безсерверный веб-сайт, который позволяет аутентификацию с Javascript с использованием AWS Cognito User Pool .

Теперь я пытаюсь включить некоторые программы * Доступ 1027 *, поэтому мне нужно выполнить ту же аутентификацию через скрипт Python. Это возможно? Документы не предоставляют примеров кода для Python.

Я просто пытаюсь найти способ для Python выполнить запрос GET или POST для AWS URL, передавая ему имя пользователя и логин, и возвращая подписанные куки проверяющую аутентификацию.

Ближайший пример, который я нашел, это этот код , который ссылается на API Cognito-IDP . Я изменил на:

import boto3
client_id = '<my_app_client_id>'
region_name = 'us-east-1'
auth_data = { 'USERNAME':'myusername' , 'PASSWORD':'mypassword' }
provider_client = boto3.client('cognito-idp', region_name=region_name)
resp = provider_client.initiate_auth(AuthFlow='USER_PASSWORD_AUTH', AuthParameters=auth_data, ClientId=client_id)
print('resp:', resp)

Однако, несмотря на то, что я использую те же учетные данные, что и через Javascript API, он не может пройти аутентификацию и просто возвращает ошибку:

botocore.exceptions.NoCredentialsError: Unable to locate credentials

Это правильный Python эквивалентный Javascript Cognito API?

1 Ответ

0 голосов
/ 18 апреля 2020

Передайте доступ и секретный ключ к boto3 следующим образом.

provider_client = boto3.client('cognito-idp', region_name=region_name, aws_access_key_id=AWS_ACCESS_KEY_ID,
                              aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...