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"