我有一个ASP.NET MVC 5应用程序,它已迁移到ASP.NET Identity,我正在实施OAuth身份验证。在迁移之前,我使用的是带有OpenID的Yahoo,它确实有效,但不再受支持 所有常见的提供商(谷歌,MS,Facebook,...)都运作良好,但我不能让雅虎工作 我正在使用THIS提供商。
当我进行身份验证时,一切都会正常,直到它返回到我的页面。 await AuthenticationManager.GetExternalLoginInfoAsync()
返回null。
然后我检查了完整的“请求堆栈”并看到了以下“请求流”:
http://mydomain.net/Account/ExternalLogin
Location: https://api.login.yahoo.com/oauth/v2/request_auth?oauth_token=hwwvmgr
https://api.login.yahoo.com/oauth/v2/request_auth
Location: http://mydomain.net/signin-yahoo?oauth_token=hwwvmgr&oauth_verifier=p2bppu
Location: /Account/ExternalLoginCallback?error=access_denied
有人知道为什么会这样吗?
我在雅虎验证的“真实域名”上执行此操作 配置如下所示:
var options = new YahooAuthenticationOptions();
options.ConsumerKey = settings.ConsumerKey;
options.ConsumerSecret = settings.ConsumerSecret;
app.UseYahooAuthentication(options);
答案 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版本(它们刚刚上周发布,所以我还没有更新)现在它正在运行。