【问题标题】:AWS Amplify AuthenticationAWS 放大身份验证
【发布时间】:2021-05-27 14:22:36
【问题描述】:

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

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

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

再次感谢!

【问题讨论】:

    标签: javascript amazon-web-services electron aws-amplify


    【解决方案1】:

    对于任何查看类似内容的人,您可以使用以下功能观看 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);
    

    【讨论】:

    • 另外,对于遇到此问题的任何人,我找到了一个更好的解决方案:使用连接到 lambda 函数的 AWS Amplify Pre Authentication Trigger 使用 AdminUserGlobalSignOut 注销所有会话,然后批准登录:流程:预认证触发器 > lambda 函数 > AdminUserGlobalSignOut > 用户登录
    猜你喜欢
    • 2019-08-13
    • 2020-04-24
    • 2016-10-22
    • 2020-07-04
    • 1970-01-01
    • 2018-01-29
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    相关资源
    最近更新 更多