我有一个 ASP.NET MVC 应用程序,它使用 Google+ 登录对用户进行身份验证。流程如下;
- 用户访问用 [Authorize] 属性装饰的控制器操作,配置表单身份验证,以便将用户转发到登录页面。
- 用户单击“使用 Google+ 登录”按钮,并按照指南启动服务器端流程
- 服务器接收用于对用户进行身份验证的 Google 令牌,将其登录并在响应中返回标准的 asp.net auth cookie。然后,用户可以使用 cookie 访问该站点。
现在,如果我通过通常的 asp.net 表单注销过程来清除用户的 cookie/会话,就会出现问题。如果他们在退出后尝试访问该应用程序,但仍然在另一个选项卡中登录 Google 产品,他们将被重定向到我的登录页面。Google+ 登录按钮将自动让他们重新登录,从而启动整个登录过程并获得全新的 asp.net cookie!真正退出的唯一方法是确保您没有登录任何 Google 产品,然后尝试退出。不完全是用户友好的。我想所有谷歌产品都会发生同样的事情,如果我登录 Gmail 并打开文档,我会自动登录。不同之处在于,如果您退出其中一个,您将退出所有 Google 产品。我认为。