Asp.Net MVC 5 Owin Twitter Auth 抛出 401 异常
Posted
技术标签:
【中文标题】Asp.Net MVC 5 Owin Twitter Auth 抛出 401 异常【英文标题】:Asp.Net MVC 5 Owin Twitter Auth throwing 401 Exception 【发布时间】:2014-03-06 05:59:44 【问题描述】:我已经使用 Owin 中间件设置了 OAuth 身份验证,该身份验证基于在使用“个人帐户”身份验证启动新 Web 项目时创建的默认项目。
我对其进行了一些调整,但 Facebook 和 Google 运行良好,但是,当我点击“twitter”按钮发出挑战时,它会抛出 500 http 异常并显示错误消息:
响应状态码不表示成功:401(未授权)。
这仅出现在 Twitter 上。这是我的身份验证配置:
// 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 调用返回成功代码:
有什么想法吗?
【问题讨论】:
【参考方案1】:您需要进入 Twitter 开发应用程序并添加一个网站地址。我知道这看起来很傻,但这会解决你的问题。
-
https://apps.twitter.com/
转到设置选项卡
为任何网站设置回调 URL。即使它不是真实的。
这应该可以解决你的问题。
【讨论】:
非可选字段。哈哈! FYI 设置 url 后大约需要 5 分钟才能生效。我为此浪费了一天时间。 谢谢你没有让我在这上面浪费一天的时间! 并确保apps.twitter设置页面中的“启用回调锁定”为假,否则你的动态回调无论如何都会关闭【参考方案2】:我按照 Patrick 一年前描述的方式解决了我的问题。今天我再次遇到同样的问题,但这次我发现问题是由于我的计算机中的日期/时间设置引起的。 由于这台计算机中的日期/时间通常不同步,我不得不转到“更改日期和时间设置”->“互联网时间”选项卡并启用互联网同步。
【讨论】:
以上是关于Asp.Net MVC 5 Owin Twitter Auth 抛出 401 异常的主要内容,如果未能解决你的问题,请参考以下文章
ASP.Net MVC 5 SPA 模板 OWin /token 导致“invalid_client”
MVC5 - ASP.NET Identity登录原理 - Claims-based认证和OWIN