AWS Cognito + RubyOnRails получает информацию о пользователе на сервере. AWS::CognitoIdentityProvider:: Ошибки::NotAuthorizedException

Я должен интегрировать Cognito + Ruby на рельсах.

Мой пользователь вошел с cognito страница входа по умолчанию и перенаправлена ​​с URL-параметрами на мою страницу.

https://development-my-site.auth.us-west-2.amazoncognito.com/oauth2/authorize?client_id=62i222222222222&redirect_uri=https://c3ffec02.ngrok.io/auth/cognito/callback&response_type=token&scope=email+openid+profile

После перенаправления у меня есть параметры

id_token=eyJraWQiOiIyYThzTzY3........
&access_token=eyJraWQiOiJDa0I2NGJsUFJKTWZrNGlV.....
&expires_in=3600
&token_type=Bearer

Я должен получить access_token от URL и перейдите к бэкэнду для проверки пользователя.

В бэкэнде я использую AWS-SDK `` `

  def client
    @client ||= Aws::CognitoIdentityProvider::Client.new(region: options.aws_region)
  end

  def get_user_info(params)
    client.get_user(access_token: params['access_token'])
  end

`` `

Но в результате у меня ошибка Aws::CognitoIdentityProvider::Errors::NotAuthorizedException (Access Token does not have required scopes):

Что я должен сделать для получения информации о пользователе?

1 ответ

Решение

Вам нужно добавить область aws.cognito.signin.user.admin на ваш запрос:

    https://development-my-site.auth.us-west-2.amazoncognito.com/oauth2/authorize?
client_id=62i222222222222
    &redirect_uri=https://c3ffec02.ngrok.io/auth/cognito/callback
    &response_type=token
    &scope=email+openid+profile+aws.cognito.signin.user.admin

и разрешить его в консоли Cognito в разделе " Разрешенные области OAuth"

Другие вопросы по тегам