1

我有一个 ASP.NET MVC 应用程序,它使用 Google+ 登录对用户进行身份验证。流程如下;

  1. 用户访问用 [Authorize] 属性装饰的控制器操作,配置表单身份验证,以便将用户转发到登录页面。
  2. 用户单击“使用 Google+ 登录”按钮,并按照指南启动服务器端流程
  3. 服务器接收用于对用户进行身份验证的 Google 令牌,将其登录并在响应中返回标准的 asp.net auth cookie。然后,用户可以使用 cookie 访问该站点。

现在,如果我通过通常的 asp.net 表单注销过程来清除用户的 cookie/会话,就会出现问题。如果他们在退出后尝试访问该应用程序,但仍然在另一个选项卡中登录 Google 产品,他们将被重定向到我的登录页面。Google+ 登录按钮将自动让他们重新登录,从而启动整个登录过程并获得全新的 asp.net cookie!真正退出的唯一方法是确保您没有登录任何 Google 产品,然后尝试退出。不完全是用户友好的。我想所有谷歌产品都会发生同样的事情,如果我登录 Gmail 并打开文档,我会自动登录。不同之处在于,如果您退出其中一个,您将退出所有 Google 产品。我认为。

4

1 回答 1

1

当前不支持将用户从您的站点中注销的方法。您可以做的是强制用户在获得授权之前点击 Google+ 登录按钮,除非您在他们的客户端上设置了一个 cookie,表明他们已登录(或注册,如果您想区分登录操作并正在登录)。你可以看看这个问题:

如何让用户退出我的应用程序?

或这个问题: 使用 Google+ 登录时防止自动登录

有关堆栈溢出的讨论和类似问题的答案。

于 2013-06-17T17:04:00.273 回答