Amplify-js: The Auth channel 'signIn' event does not get returned after a first time password reset/TOTP login

Created on 11 Sep 2020  路  2Comments  路  Source: aws-amplify/amplify-js

Describe the bug
Using the Vue Amplify UI Authenticator Component, when a first time Cognito user logs in with a password reset and QR scan code to get a TOTP token, no auth signIn event happens.

To Reproduce
Steps to reproduce the behavior:

  1. Create a new Cognito user that has MFA.

  2. In App.vue, within the beforeCreate() lifecycle method, listen to the auth channel and log the payloads.

Hub.listen('auth', (data) => {
  console.log('Listening for all messages: ', data.payload)
})
  1. Login with the new user email and temporary password that you created in Cognito.
  2. Enter the new password in the input and press the "Change" button.
  3. Scan the QR code and enter the generated token.
  4. Press the "Verify Security Token" button.
  5. Notice how no signIn event appears to be logged in the console.
  6. Notice how the signOut event appears in the console.

Expected behavior
When signing in with a brand new user, I expect to see a signIn event logged.

Code Snippet

In a `LoginForm.vue` component:
<amplify-authenticator>
      <amplify-sign-in header-text="" slot="sign-in">
        <div slot="secondary-footer-content"></div>
      </amplify-sign-in>
</amplify-authenticator>

Screenshots
Screen Shot 2020-09-10 at 9 05 15 PM

Screen Shot 2020-09-10 at 9 02 44 PM_censored

signIn

What is Configured?
{ Auth: { aws_appsync_graphqlEndpoint: '', aws_appsync_authenticationType: '', aws_cognito_identity_pool_id: '', region: '', aws_user_pools_id: '', aws_user_pools_web_client_id: '' } }


Environment

npx envinfo --system --binaries --browsers --npmPackages --npmGlobalPackages
 System:
    OS: macOS 10.15.6
    CPU: (4) x64 Intel(R) Core(TM) i7-6567U CPU @ 3.30GHz
    Memory: 75.71 MB / 16.00 GB
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 10.19.0 - /usr/local/bin/node
    Yarn: 1.22.5 - /usr/local/bin/yarn
    npm: 6.14.8 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  Browsers:
    Chrome: 85.0.4183.102
    Chrome Canary: 87.0.4260.0
    Firefox: 78.0.2
    Safari: 13.1.2
  npmPackages:
    @aws-amplify/auth: ^3.4.1 => 3.4.1 
    @aws-amplify/core: ^3.5.1 => 3.5.1 
    @aws-amplify/ui-components: ^0.8.1 => 0.8.1 
    @aws-amplify/ui-vue: ^0.2.17 => 0.2.17 
    @aws-amplify/xr: ^2.2.1 => 2.2.1 
    @sparkbox/safe-focus: ^1.2.4 => 1.2.4 
    @vue/cli-plugin-babel: ~4.5.4 => 4.5.4 
    @vue/cli-plugin-e2e-cypress: ~4.5.4 => 4.5.4 
    @vue/cli-plugin-eslint: ~4.5.4 => 4.5.4 
    @vue/cli-plugin-router: ~4.5.4 => 4.5.4 
    @vue/cli-plugin-unit-jest: ~4.5.4 => 4.5.4 
    @vue/cli-plugin-vuex: ~4.5.4 => 4.5.4 
    @vue/cli-service: ~4.5.4 => 4.5.4 
    @vue/eslint-config-standard: ^5.1.2 => 5.1.2 
    @vue/test-utils: 1.0.5 => 1.0.5 
    aws-amplify: ^3.1.1 => 3.1.1 
    babel-eslint: ^10.1.0 => 10.1.0 
    check-node-version: ^4.0.3 => 4.0.3 
    core-js: ^3.6.5 => 3.6.5 
    eslint: ^6.8.0 => 6.8.0 
    eslint-plugin-import: ^2.22.0 => 2.22.0 
    eslint-plugin-node: ^11.1.0 => 11.1.0 
    eslint-plugin-promise: ^4.2.1 => 4.2.1 
    eslint-plugin-standard: ^4.0.1 => 4.0.1 
    eslint-plugin-vue: ^6.2.2 => 6.2.2 
    sass: ^1.26.10 => 1.26.10 
    sass-loader: ^10.0.1 => 10.0.1 
    stylelint: ^13.7.0 => 13.7.0 
    stylelint-config-recommended: ^3.0.0 => 3.0.0 
    tailwindcss: ^1.7.6 => 1.7.6 
    vue: ^2.6.12 => 2.6.12 
    vue-cookies: ^1.7.4 => 1.7.4 
    vue-router: ^3.4.3 => 3.4.3 
    vue-template-compiler: ^2.6.12 => 2.6.12 
    vuex: ^3.5.1 => 3.5.1 
    webpack: ^4.44.1 => 4.44.1 
  npmGlobalPackages:
    @angular/cli: 9.0.7
    @aws-amplify/cli: 4.21.0
    @shopify/slate: 0.14.0
    @vue/cli: 4.3.1
    backstopjs: 4.5.0
    eslint: 7.0.0
    gatsby-cli: 2.7.44
    grunt-cli: 1.3.2
    http-server: 0.12.0
    jest-cli: 25.1.0
    json-server: 0.16.1
    n: 2.1.12
    npm: 6.14.8
    prisma: 1.23.2
    serve: 11.2.0
    surge: 0.20.3

Additional context
I am looking to listen to the signIn event so that I can redirect the user to the next part of the app. signIn is registering fine for users that have already signed in once before.

Auth Vue bug

Most helpful comment

Managed to reproduce. Working on a PR.

Update 1:
This seems to be Auth specific and possibly affecting all platforms, tested with React as well.

All 2 comments

Managed to reproduce. Working on a PR.

Update 1:
This seems to be Auth specific and possibly affecting all platforms, tested with React as well.

hey @anastasialanz - it looks like a fix went in. Are you able to verify this?

Was this page helpful?
0 / 5 - 0 ratings