如何从AWS Cognito中的所有提供程序注销?

问题描述 投票:2回答:2

我在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);
});

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

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

javascript amazon-web-services amazon-cognito aws-cognito
2个回答
1
投票

如果足够(注销),会话令牌将过期,并且该用户将无法在不使用新令牌的情况下再次登录。你的认知池仍然有提供者用户..但是没关系,如果你删除它并且用户再次登录,它将是一个不同的用户,所以你需要将记录保存在认知数据库中


1
投票

JS SDK有一个名为clearCachedId的方法,它应该擦除本地状态并帮助解决这个问题。

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

© www.soinside.com 2019 - 2024. All rights reserved.