繁体   English   中英

Facebook Javascript SDK-如何与ASP.NET MVC登录绑定?

[英]Facebook Javascript SDK - How to tie with ASP.NET MVC Login?

我有一个ASP.NET MVC4 Web应用程序,并且我想使用Facebook来验证用户身份。

我的计划是让用户“注册” Facebook,然后使用它登录。

现在,当用户访问该站点并使用我设置的Facebook登录按钮登录时,这很好,该按钮通过/ Account / FacebookLogin操作进行。 在该操作中,我可以获取Auth令牌,并对照SQL数据库进行检查,然后使用我存储在数据库中的所有额外字段/信息对用户进行身份验证(这是一个基于网络的游戏,因此角色名称等)...

现在,如果用户来到我的网站并且已经登录到Facebook,则显然他们不会执行该/ Account / FacebookLogin操作...我只是可以通过以下方式访问auth令牌

FB.getLoginStatus(function (response) {
        if (response.status === 'connected') {
            var accessToken = response.authResponse.accessToken;
            //alert("User is logged in");
        }
        else if (response.status === 'not_authorized') {
            //alert("User is not authorised");
        }
        else {
            //alert("User is not connected to Facebook");
        }

    });

我的问题是...如何在“如果已连接”代码中授权用户,而无需将他们发送到无限循环中,该怎么办? 我尝试将它们重定向到/ Account / FacebookLogin操作并传递auth令牌等。但是在每个页面上都会调用getLoginStatus回调...因此它们陷入了无限循环。

Facebook已授予您访问某人的Facebook身份的权限。 您现在可能要为该身份创建一个用户帐户。 一旦该用户拥有一个帐户,那么您就需要让该用户对您的应用程序进行身份验证(如果您希望将自己与Facebook绑定,则可以使用Facebook身份进行此操作)。 然后,您可以授权该用户在您的应用程序中执行某些操作。

在MVC的上下文中,您可以非常简单地向它们颁发表单身份验证令牌:

var username = response.authResponse.name; // <- check the syntax on this
FormsAuthentication.SetAuthCookie(username, true);
return this.RedirectToAction("Index", "AuthorizedUsersOnlyController");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM