"access_denied" при использовании Yahoo OAuth
У меня есть приложение 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);
1 ответ
Нашел проблему: Была ошибка в провайдере. Если вы проверите историю здесь:
Версия 1.5.1 - Исправлена проблема с провайдером Yahoo. Пожалуйста, смотрите http://www.jerriepelser.com/blog/introducing-the-yahoo-linkedin-oauth-security-providers-for-owin чтобы узнать, как правильно использовать провайдера Yahoo. Обратите внимание на требования к тестированию на localhost.
Я только что обновил провайдер до версии 1.6 (они только что вышли на прошлой неделе, поэтому я еще не обновился), и он работает сейчас.