AWS cognito: «Токен доступа не содержит область действия openid» - PullRequest
0 голосов
/ 08 января 2020

Эта проблема возникла при попытке извлечь атрибуты пользователя из AWS Cognito.

Не могу сказать, как это может быть «Неверный токен», потому что я скопировал и вставил его, а также я убедился, что это accessToken, а не idToken или что-то еще.

На этом сайте есть и другие подобные вопросы, но они не t решить мою проблему:

«Токен доступа не содержит область действия openid» в AWS Cognito

Токен доступа не имеет область действия openid

Обновление: здесь мой конфиг клиента приложения

enter image description here

Ответы [ 2 ]

1 голос
/ 09 января 2020

ОК, я получил подробную информацию.

Краткий ответ: Вы должны использовать oauth2 Аутентификация Cognito вместо использования API-интерфейса аутентификации Cognito по умолчанию в SDK.

Позвольте мне объяснить, почему вы встречаете ошибку: вы используете аутентификацию Cognito, затем Cognito возвращает вам «токен доступа», который не содержит «openid» область действия, вы можете вставить токен здесь, чтобы проверить: https://jwt.io/#encoded -jwt .

Вы должны использовать аутентификацию oauth2 , чтобы получить «токен доступа», содержащий «openid». Чтобы сделать это, вы должны использовать размещенный пользовательский интерфейс или конечную точку AUTHORIZATION , чтобы получить «токен доступа».

Вы можете попробовать размещенный пользовательский интерфейс по ссылке доступа (пожалуйста, измените ваш домен + response_type + client_id + redirect_uri): https://tsunami.auth.us-east-2.amazoncognito.com/login?response_type=code&client_id=CLIENT_ID&redirect_uri=CALLBACK_SIGNIN_URL

Вы можете использовать конечную точку AUTHORIZATION: https://tsunami.auth.us-east-2.amazoncognito.com/oauth2/authorize?response_type=code&client_id=CLIENT_ID&redirect_uri=CALLBACK_SIGNIN_URL&identity_provider=COGNITO, и она будет перенаправлена ​​на размещенный пользовательский интерфейс

0 голосов
/ 08 января 2020

Получение информации о пользователе - это функция подключения с открытым идентификатором, для которой требуется область действия openid в токене.

Я подозреваю, что проблема связана с не указанием этой области при аутентификации и получении токена.

Обычно вы конфигурируете такие области при аутентификации:

  • электронная почта профиля openid

Вы также предоставляете их в записи доверия клиента OAuth, настроенной в Cognito

  • Область действия профиля позволяет вам получить имя пользователя от конечной точки информации о пользователе
  • Область электронной почты позволяет вам получить электронную почту от конечной точки информации о пользователе

См. шаг 9 моей записи для примера

...