Asp.Net MVC 5 Owin Twitter Auth抛出401例外

时间:2014-02-08 20:07:49

标签: twitter oauth twitter-oauth

我使用Owin中间件设置了OAuth身份验证,该中间件基于使用“个人帐户”身份验证启动新Web项目时创建的默认项目。

我稍微调整了一下,但是Facebook和Google工作得很好,但是,当我点击“twitter”按钮发出挑战时,它会抛出500个http异常,并显示错误消息:

  

响应状态代码不表示成功:401(未授权)。

这只是推特。这是我的身份验证配置:

// Just a configuration section that reads from the web.config
var configuration = new OwinCookieConfigurationSection("owinCookieConfiguration");
app.UseCookieAuthentication(GetCookieAuthenticationOptions(configuration));
app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

app.UseTwitterAuthentication(
    consumerKey: "XXX",
    consumerSecret: "XXX"
);

app.UseFacebookAuthentication(
    appId: "XXX",
    appSecret: "XXX"
);

app.UseGoogleAuthentication();

这肯定是一个500错误,而不是401错误,因为它表明我已经确认它永远不会让它通过Twitter的原始帖子挑战。堆栈跟踪似乎显示Twitter未从ObtainRequestToken调用返回成功代码:

Stack Trace

有什么想法吗?

2 个答案:

答案 0 :(得分:71)

您需要进入Twitter Dev App并添加网站地址。我知道这看起来很傻但这可以解决你的问题。

  1. https://apps.twitter.com/
  2. 转到“设置”标签
  3. 将CallBack URL设置为任何网站。即使它不是真的。
  4. 这可以解决你的问题。

答案 1 :(得分:2)

我像帕特里克1年前描述的那样解决了我的问题。今天我又遇到了同样的问题,但这次我发现问题是由于我的电脑中的日期/时间设置造成的。 由于此计算机中的日期/时间通常不同步,因此我必须转到“更改日期和时间设置” - > “互联网时间”选项卡并启用互联网同步。