我正在使用 django-social-auth 通过 facebook 登录登录我的网站。这给我带来了如下问题。1. 首次登录时,我的网站会重定向到 facebook 登录对话框。2. 在正确的登录信息上,它会登录到我的网站。3. 现在,如果我退出我的网站,我将被正确识别为访客。4. 但是再次点击用 facebook 登录时,我会以之前登录的用户身份直接登录而没有 facebook 对话框。
在进一步的研究中,我意识到当我使用 facebook 登录我的网站时,我也会登录到 facebook.com。当我退出我的网站时,它只会让我退出我的网站,但仍然保持 facebook.com 登录。我知道这是以前登录的用户可以简单地重新登录而无需输入任何用户名/密码。
我知道这有助于一些用户案例。就像我已经登录到 facebook.com 并单击 mysite 上的 facebook 登录一样,我直接登录而无需任何用户名/密码详细信息。
互联网上提到的最常见的解决方案(也可在 stackoverflow 上找到)是使用注销重定向或 javascript 方法手动注销 facebook.com。但是,如果用户在另一个选项卡中手动登录到 facebook.com,或者如果用户使用 facebook 登录到另一个网站,这将成为一个问题。
facebook 以这种方式实施“用于网站的 facebook”的可能原因是什么?
我发现部分正确的一个解决方案是在登录我的网站期间检查登录对话框是否出现,并根据这些数据手动注销 Facebook,如果我的网站首先导致登录。但这是一个部分解决方案,因为它可能仍会从包括 facebook 在内的其他网站注销用户,即使他可能打算留在那里。暂时我会继续这样做,因为它似乎更符合谷歌在其在线应用程序(gmail、阅读器、文档等)中实施的内容。
但我仍在寻找更好的解决方案。
最好的解决方案当然是在登录过程中避免 facebook.com 登录。
等待想法和想法。