Шаги, предпринятые до сих пор:
- Настройка нового пула пользователей в cognito
- Создать клиент приложения с без секрета ; давайте назовем его id
user_pool_client_id
- В настройках клиента пула пользователей для
user_pool_client_id
установите флажок «Пул пользователей Cognito», добавьте https://localhost
в качестве обратного вызова и выйдите из URL, проверьте «Предоставление кода авторизации», «Неявное предоставление» и все в разделе «Разрешено». OAuth Scopes "
- Создать доменное имя; давайте назовем это
user_pool_domain
Создать нового пользователя с именем пользователя / паролем
Теперь я могу успешно перейти на:
https://{{user_pool_domain}}.auth.us-east-2.amazoncognito.com/oauth2/authorize?response_type=code&client_id={{user_pool_client_id}}&redirect_uri=https%3A%2F%2Flocalhost
Это открывает мне страницу входа в систему, и я могу войти как мой пользователь, который возвращает меня к https://localhost/?code={{code_uuid}}
Затем я попробую следующее:
curl -X POST https://{{user_pool_domain}}.auth.us-east-2.amazoncognito.com/oauth2/token -H 'Content-Type: application/x-www-form-urlencoded' -d 'grant_type=authorization_code&redirect_uri=https%3A%2F%2Flocalhost&code={{code_uuid}}&client_id={{user_pool_client_id}}'
Однако, это просто возвращает следующее:
{"error":"unauthorized_client"}
В конечной точке токена в документах указано, что unauthorized_client
объясняется тем, что «Клиенту запрещен поток кода или обновляются токены». что сбивает с толку, потому что я установил флажки, позволяющие клиенту использовать поток предоставления кода.