" ACCESS_DENIED"使用Yahoo OAuth时

时间:2014-07-20 14:23:36

标签: c# asp.net-mvc oauth asp.net-identity-2 yahoo-oauth

我有一个ASP.NET MVC 5应用程序,它已迁移到ASP.NET Identity,我正在实施OAuth身份验证。在迁移之前,我使用的是带有OpenID的Yahoo,它确实有效,但不再受支持 所有常见的提供商(谷歌,MS,Facebook,...)都运作良好,但我不能让雅虎工作 我正在使用THIS提供商。

当我进行身份验证时,一切都会正常,直到它返回到我的页面。 await AuthenticationManager.GetExternalLoginInfoAsync()返回null。

然后我检查了完整的“请求堆栈”并看到了以下“请求流”:

  1. 回发至http://mydomain.net/Account/ExternalLogin
  2. 标题为Location: https://api.login.yahoo.com/oauth/v2/request_auth?oauth_token=hwwvmgr
  3. 的回复
  4. 通过Yahoo登录
  5. 请求https://api.login.yahoo.com/oauth/v2/request_auth
  6. 标题为Location: http://mydomain.net/signin-yahoo?oauth_token=hwwvmgr&oauth_verifier=p2bppu
  7. 的回复
  8. 请求该网址
  9. 标题为Location: /Account/ExternalLoginCallback?error=access_denied
  10. 的回复

    有人知道为什么会这样吗?

    我在雅虎验证的“真实域名”上执行此操作 配置如下所示:

    var options = new YahooAuthenticationOptions();
    options.ConsumerKey = settings.ConsumerKey;
    options.ConsumerSecret = settings.ConsumerSecret;
    app.UseYahooAuthentication(options);
    

1 个答案:

答案 0 :(得分:1)

发现问题:提供商中存在错误。 如果您查看历史记录here

  

版本1.5.1          - 解决了Yahoo提供商的问题。有关如何正确使用Yahoo提供程序,请参阅http://www.jerriepelser.com/blog/introducing-the-yahoo-linkedin-oauth-security-providers-for-owin。请注意在localhost上测试的要求。

我刚刚将提供程序更新到1.6版本(它们刚刚上周发布,所以我还没有更新)现在它正在运行。