1

Je devrais intégrer cognito + rubis sur les rails.AWS Cognito + RubyOnRails obtenir des informations sur l'utilisateur sur le backend. Aws :: CognitoIdentityProvider :: Errors :: NotAuthorizedException

Mon utilisateur connecté avec cognito page de connexion par défaut et redirigé avec des paramètres d'URL sur ma page.

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

Après redirect j'ai params

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

je devrais obtenir access_token de url et passer à backend pour la vérification de l'utilisateur.

Dans le backend j'utilise 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 

` ``

Mais le résultat que j'ai erreur Aws::CognitoIdentityProvider::Errors::NotAuthorizedException (Access Token does not have required scopes):

Ce que je dois faire pour obtenir des informations de l'utilisateur ?

Répondre

3

Vous devez ajouter le champ aws.cognito.signin.user.admin à votre requête:

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 

et le laisser dans la console Cognito sous admis OAuth Scopes