【问题标题】:How to logout from all providers in AWS Cognito?如何从 AWS Cognito 中的所有提供商注销?
【发布时间】:2017-11-02 13:41:22
【问题描述】:

我在我的 Web 应用程序中使用 AWS Cognito 身份验证。用户可以使用以下三个身份提供者之一进行身份验证:cognito 用户池(通过用户名和密码)、facebook 和 google。 以下是我获取凭据的方式:

AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: identityPoolId,
    Logins: logins
});
AWS.config.credentials.get(err => {
    console.log("Amazon Cognito Identity", 
    AWS.config.credentials.identityId);
});

logins - 对象,可以包含来自 cognito、facebook 和 google 的令牌。

如果用户单击注销按钮,Web 应用程序应该做什么? 如果当前用户存在,我可以做userPool.getCurrentUser().signOut()(当前用户仅存在于 cognito 用户名、密码验证中) 但是,如果有人使用 facebook 或 google 登录,我该怎么办?

【问题讨论】:

    标签: javascript amazon-web-services amazon-cognito aws-cognito


    【解决方案1】:

    这就足够了(退出),会话令牌将过期,并且该用户将无法在不使用新令牌的情况下再次登录。您的 cognito 池仍然有提供者用户.. 但没关系,如果您将其删除并且用户再次登录,它将是另一个用户,因此您需要将记录保留在 cognito 数据库中

    【讨论】:

      【解决方案2】:

      JS SDK 有一个名为 clearCachedId 的方法,它可以清除本地状态并帮助解决此问题。

      http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityCredentials.html

      【讨论】:

        猜你喜欢
        • 2022-11-10
        • 2021-09-23
        • 2020-12-21
        • 1970-01-01
        • 2018-07-25
        • 1970-01-01
        • 2020-04-25
        • 2019-04-06
        • 1970-01-01
        相关资源
        最近更新 更多