AWS amplify cognito accessing pubsub with AccessToken, IdToken and RefreshToken

Viewed 47

I am using AWS amplify with Angular and I followed the instructions to setup Amplify, add backend and then auth.

I also created a user in cognito pool and used it to login in my angular app. I am able to see AccessToken, IdToken and RefreshToken in the browser network tab. As per the guide I have to use these to obtain the pool tokens using which I can get temporary aws credentials to access aws services. I want to access pubsub to show messages being sent to aws iot_core.

But I was unable to find any information of how exactly we use these 3 tokens to access AWS resources..? Can anybody shed some light on this?

async signIn() {
    Auth.signIn('xxxxx', 'xxxxx')
    .then(user => {
    if (user.challengeName === 'NEW_PASSWORD_REQUIRED') {
    const { requiredAttributes } = user.challengeParam; // the array of required attributes, 
    e.g ['email', 'phone_number']
        Auth.completeNewPassword(
            user,               // the Cognito User Object
            'xxx',       // the new password
            // OPTIONAL, the required attributes
            {
              email: 'xxxx@example.com',
           
            }
        ).then(user => {
            // at this time the user is logged in if no MFA required
            console.log(user);
        }).catch(e => {
          console.log(e);
        });
    } else {
        console.log("Connecting to AWS IoT...")

        //Apply plugin with configuration

        Amplify.addPluggable(new AWSIoTProvider({
          aws_pubsub_region: 'us-east',
          aws_pubsub_endpoint: 'wss://xxxxx-ats.iot.us-east-1.amazonaws.com/mqtt',
        }));
        console.log("hello")
    }
    }).catch(e => {
    console.log(e);
    });
    }
1 Answers
Related