AWS 放大身份验证

AWS Amplify Authentication

希望有人能帮助我,我在网上找不到我要找的东西...我正在使用 AWS Amplify 登录并寻找一种方法来确定用户是否已经登录并且如果是这样,踢其他会话,只允许当前登录会话。我知道我可以使用全局注销,如果是这种情况,我是否在签名后执行此操作(因为没有仅使用全局标记的参数),如果是这样,那不会也使用户的令牌过期吗刚刚登录?

有人有什么建议吗? 提前致谢!

编辑: 我让它工作,如果用户已经登录,那么我使用全局注销并为当前用户重新登录。现在在登录的其他计算机上,一小时后令牌过期并且不会刷新(这就是我想要的)但我的应用程序冻结了。无论如何我可以捕获过期令牌的错误并使用它来关闭我的应用程序吗?

再次感谢!

对于任何关注类似内容的人,您可以使用以下功能观看 Amplify 事件: https://docs.amplify.aws/lib/auth/auth-events/q/platform/js

import { Hub, Logger } from 'aws-amplify';

const logger = new Logger('My-Logger');

const listener = (data) => {
    switch (data.payload.event) {
        case 'signIn':
            logger.info('user signed in');
            break;
        case 'signUp':
            logger.info('user signed up');
            break;
        case 'signOut':
            logger.info('user signed out');
            break;
        case 'signIn_failure':
            logger.error('user sign in failed');
            break;
        case 'tokenRefresh':
            logger.info('token refresh succeeded');
            break;
        case 'tokenRefresh_failure':
            logger.error('token refresh failed');
            break;
        case 'configured':
            logger.info('the Auth module is configured');
    }
}

Hub.listen('auth', listener);