У меня есть приложение ASP.NET MVC 5, которое было перенесено в ASP.NET Identity, и я выполняю аутентификацию OAuth. До миграции я использовал Yahoo с OpenID, который работал, но больше не поддерживается.
Все распространенные провайдеры (Google, MS, Facebook, ...) работают нормально, но я не могу заставить работать Yahoo.
Я использую ЭТО провайдер.
Когда я выполняю аутентификацию, все выглядит нормально, пока не вернется на мою страницу. Там await AuthenticationManager.GetExternalLoginInfoAsync()
возвращает ноль.
Затем я проверил полный «стек запросов» и увидел следующий «поток запросов»:
- Опубликовать обратно в
http://mydomain.net/Account/ExternalLogin
- Ответ с заголовком
Location: https://api.login.yahoo.com/oauth/v2/request_auth?oauth_token=hwwvmgr
- Вход через Yahoo
- Запрос к
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
Кто-нибудь знает, почему это могло произойти?
Я выполнил это на «настоящем домене», который проверен в Yahoo.
Конфигурация выглядит следующим образом:
var options = new YahooAuthenticationOptions();
options.ConsumerKey = settings.ConsumerKey;
options.ConsumerSecret = settings.ConsumerSecret;
app.UseYahooAuthentication(options);