我正在使用asp.net mvc。我正在尝试为我的MVC应用程序实现Facebook集成。在这里,我选择了OA登录的OAuth机制。这是我的标记,
<a href="/Account/FacebookLogin">Login With Facebook</a>
这是我的行动,
public ActionResult FacebookLogin()
{
oAuthFacebook oauth = new oAuthFacebook();
return new RedirectResult(oauth.AuthorizationLinkGet());
}
我的回调网址为/Home/FBLogin
public ActionResult FBLogin()
{
oAuthFacebook oAuth = new oAuthFacebook();
if (Request["code"] == null)
{
//Redirect the user back to Facebook for authorization.
return new RedirectResult(oAuth.AuthorizationLinkGet());
}
else
{
oAuth.AccessTokenGet(Request["code"]);
if (oAuth.Token.Length > 0)
{
//Handle Accesstoken : oAuth.Token
}
}
return RedirectToAction("Dashboard", "Home");
}
这里我的问题是当我已经登录Facebook网站然后打开我的网站并点击登录时使用facebook按钮它的工作非常好。
但如果我没有登录facebook网站,我想通过我的mvc应用程序重新登录facebook。它导致facebook重定向循环,这意味着它继续调用我的回调网址,以便我无法重定向到我的情况下的Dashboard操作,它在Facebook登录页面停止我重新加载。我已经清除了所有的cookie并尝试但它没有改变。我无法找到错误是我的身边还是脸书。
更新
如果我添加一个属性auth_type=reauthenticate
来解决我的问题,并且工作正常。如果我已经登录Facebook网站,它会重新验证我。如果我在facebook网站注销并尝试通过我的应用程序登录,它会向我询问关于 2次的密码,一个用于正常登录,另一个用于重新验证登录。有什么方法可以克服这种行为吗?请指导我。谢谢你。