"access_denied" при использовании Yahoo OAuth

У меня есть приложение ASP.NET MVC 5, которое было перенесено в ASP.NET Identity, и я нахожусь в процессе реализации аутентификации OAuth. До перехода я использовал Yahoo с OpenID, который работал, но больше не поддерживается.
Все обычные провайдеры (Google, MS, Facebook, ...) работают нормально, но я не могу заставить Yahoo работать.
Я использую ЭТОГО провайдера.

Когда я делаю аутентификацию, все выглядит нормально, пока не вернется на мою страницу. Там await AuthenticationManager.GetExternalLoginInfoAsync() возвращает ноль.

Затем я проверил полный "стек запросов" и увидел следующий "поток запросов":

  1. Отправить обратно http://mydomain.net/Account/ExternalLogin
  2. Ответ с заголовком Location: https://api.login.yahoo.com/oauth/v2/request_auth?oauth_token=hwwvmgr
  3. Вход через Yahoo
  4. Запросить https://api.login.yahoo.com/oauth/v2/request_auth
  5. Ответ с заголовком Location: http://mydomain.net/signin-yahoo?oauth_token=hwwvmgr&oauth_verifier=p2bppu
  6. Запрос на этот URL
  7. Ответ с заголовком Location: /Account/ExternalLoginCallback?error=access_denied

У кого-нибудь есть идея, почему это может произойти?

Я выполнил это на "реальном домене", который проверен в Yahoo.
Конфигурация выглядит следующим образом:

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

1 ответ

Решение

Нашел проблему: Была ошибка в провайдере. Если вы проверите историю здесь:

Версия 1.5.1 - Исправлена ​​проблема с провайдером Yahoo. Пожалуйста, смотрите http://www.jerriepelser.com/blog/introducing-the-yahoo-linkedin-oauth-security-providers-for-owin чтобы узнать, как правильно использовать провайдера Yahoo. Обратите внимание на требования к тестированию на localhost.

Я только что обновил провайдер до версии 1.6 (они только что вышли на прошлой неделе, поэтому я еще не обновился), и он работает сейчас.

Другие вопросы по тегам