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

时间:2017-06-01 12:01:36

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

我在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或谷歌登录,我该怎么办?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

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