我能够使用Reactjs应用程序中的aws-amplify库登录谷歌帐户。
当我退出并尝试再次登录时,它并不要求我输入谷歌用户名和密码,而是使用之前的会话(不知何故)并将我重定向回我的react应用程序。
我阅读了不同问题并应用了不同的解决方案,但没有一个对我有效。
**解决方案1:**这显然不适用于google注销。
const logout = () => {
Auth.signout()
}
解决方案2:
const logout = () => {
const requestOptions = {
method: "POST",
'Content-Type': 'application/x-www-form-urlencoded'
};
const url = `https://{domain}.amazoncognito.com/logout?client_id=xxx&response_type=code&scope=xxx&redirect_uri=http://xxx/logout`;
await fetch(url, requestOptions);
}
但由于某种原因,它棘手的CORS问题。
1.我不知道如何以及在哪里解决CORS问题?有什么需要在Cognito中配置吗?
1.尝试使用method: "GET"
代替method: "POST"
,但出现相同的CORS问题。
1.我不知道这个方法是对还是错,如果有其他明确的方法,请告诉我。
需要知道正确的方法来注销和破坏用户的会话。所以下次当我试图登录,它必须要求我输入谷歌用户名和密码。
1条答案
按热度按时间ffdz8vbo1#
Auth.signout()
不会将您从Google注销。因此,即使您从应用程序注销,您的Google会话仍然存在。看看this的回答。
当用户再次尝试登录时,它会将您重定向到Google,并且存在有效的Google会话。这意味着Google不会再次要求您提供凭据。因此,Google会将您重定向回Cognito,然后重定向到应用程序。
这就是为什么在第一种方法中您不会再次看到Google登录页面的原因。
希望这会有帮助。