use*_*707 12 model-view-controller facebook oauth facebook-graph-api owin
我昨天注意到我的网站登录已停止工作.
在过去的两个月里,这一直很有效,据我所知,我没有改变任何东西.我已尝试过以下链接,例如: - 以及更多......
ASP.NET MVC5 OWIN Facebook身份验证突然无法正常工作
我注意到Stack Overflow Facebook auth也停止了工作.
有没有人注意到这一点并找到了解决办法?值得注意的是我正在使用azure app服务来托管.但是当我使用localhost时也会发现这个问题.
我目前的设置看起来像这样......
在Startup.Auth.cs中
var facebookOptions = new Microsoft.Owin.Security.Facebook.FacebookAuthenticationOptions()
{
AppId = "xxxxxxxxxxxxx",
AppSecret = "xxxxxxxxxxxx"
};
facebookOptions.Scope.Add("email");
app.UseFacebookAuthentication(facebookOptions);
Run Code Online (Sandbox Code Playgroud)
在下面的方法,loginInfo是null每一次.
[AllowAnonymous]
public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
{
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
if (loginInfo == null)
{
return RedirectToAction("Login");
}
Run Code Online (Sandbox Code Playgroud)
我还从一个不同的帖子建议中添加了一个"WAKEUP"会话,fb auth之前失败了一次,这次修复了这个问题,但它已经回来了.
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult ExternalLogin(string provider, string returnUrl)
{
Session["WAKEUP"] = "NOW!";
// Request a redirect to the external login provider
return new ChallengeResult(provider, Url.Action("ExternalLoginCallback", "Account", new { ReturnUrl = returnUrl }));
}
Run Code Online (Sandbox Code Playgroud)
Joe*_*ehl 13
正如RockSheep解释的那样.Facebook放弃了对API v2.2的支持.您需要更新您的OWIN nuget包.
你可以在github上找到这个问题(来自Katanaproject).
确保在nuget管理器中激活预发布版本,而不是将nuget软件包更新到版本v3.1.0-rc1.但要注意:更新后,您需要仔细测试您的登录信息(也许您还有其他身份验证提供程序,如Microsoft或Google,您也应该对其进行测试).
技术
Api将版本号更改为v2.8,API的返回值现在为JSON格式,不再在URI中进行转义.'旧'OWIN包无法处理此更改.
[Oauth访问令牌]格式 - 当您交换access_token的代码时返回的https://www.facebook.com/v2.3/oauth/access_token的响应格式 现在返回有效的JSON而不是URL编码.此回复的新格式为{"access_token":{TOKEN},"token_type":{TYPE},"expires_in":{TIME}}.我们使此更新符合RFC 6749的第5.1节.
在这里,您可以在GitHub上找到代码更改,以获得更多信息和更好的理解.
很多人在昨天之后开始遇到麻烦.这是由于Facebook放弃了对其API的v2.2的支持.由于某种原因,他们的系统仍然将不使用版本号的auth调用重定向到2.2 API.quickfix是为了确保API版本随API调用一起发送.
从v2.3开始,Facebook也开始返回JSON对象.因此,请务必在代码中更改它.
| 归档时间: |
|
| 查看次数: |
3893 次 |
| 最近记录: |