用户登录FB或google时自动登录用户到网站--DotNetOpenAuth

时间:2012-05-25 07:53:35

标签: asp.net-mvc-3 dotnetopenauth

我使用DotNetOpenAuth登录FB和Google用户。

当用户访问网站时,有没有办法检测他/她是否已登录到FB或Google并自动登录?

谢谢

1 个答案:

答案 0 :(得分:2)

是的,如果您的用户已经之前已使用Google或Facebook明确登录您的网站。出于隐私原因,如果没有每个用户至少一次明确登录您的网站,并且点击“#34;请记住我"在他们的登录页面上这样做”,两个提供商都不会允许您隐式记录他们的用户。

一旦用户批准了这一点,它就变得可能但仍然不是很简单。该方法涉及在页面上创建隐藏的iframe(可能在首次创建用户会话时,将iframe添加到用户正在查看的任何页面,或仅添加到您的常用登录页面)。此iframe指向您网站上的网址,该网址只会启动无用户互动登录流程。对于Google,这意味着您的服务器使用Google OP标识符进行OpenIdRelyingParty.CreateRequest调用,并在调用IAuthenticationRequest.Mode = AuthenticationRequestMode.Immediate之前在返回的对象上设置IAuthenticationRequest.RedirectToProviderImmediate位告诉提供者不要期望与用户交互(因为您的iframe是不可见的)并且要么立即给出是或否给出响应。然后,在重定向回到您的网站(仍在隐藏的iframe中),您会看到用户已登录Google(或未登录)并获取其声明的标识符并将其记录到您的网站中。

对于使用旧的OAuth 2草案的Facebook,该过程可能类似,但使用OAuth 2类。我虽然做不到这一点,所以我无法给出一个概述。

相关问题