我有一个迁移到 ASP.NET Identity 的 ASP.NET MVC 5 应用程序,并且正在实施 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
- 对该 URL 的请求
- 带有标头的响应
Location: /Account/ExternalLoginCallback?error=access_denied
有谁知道为什么会发生这种情况?
我在雅虎验证的“真实域”上执行了此操作。
配置如下所示:
var options = new YahooAuthenticationOptions();
options.ConsumerKey = settings.ConsumerKey;
options.ConsumerSecret = settings.ConsumerSecret;
app.UseYahooAuthentication(options);