#asp.net #oauth #oauth-2.0
#asp.net #oauth #oauth-2.0
Вопрос:
Я пытаюсь подключить свой ASP.NET Веб-приложение Core 3.1 с Yahoo. Для этого я должен настроить авторизацию с помощью OAuth. Я следовал нескольким различным руководствам, в том числе:
https://developer .yahoo.com/oauth2/guide/openid_connect/getting_started.html
https://www.yogihosting.com/implementing-yahoo-oauth-2-0-in-csharp-and-asp-net/
Я настроил свое приложение в Yahoo с конфигурацией, показанной на рисунке ниже:
Затем я настроил свой код для отправки запроса на авторизацию в Yahoo со следующим кодом:
public void YahooAuth()
{
string id = configuration["YahooClientId"];
string returnUrl = "https://www.fantasysimmer.com/FootballSimulator/Sim";
string url = $"https://api.login.yahoo.com/oauth2/request_auth?client_id={id}--amp;response_type=codeamp;redirect_uri={returnUrl}";
Response.Redirect(url);
}
Однако при запуске этого кода я получаю страницу с ошибкой с сообщением «Разработчики: Пожалуйста, укажите действительного клиента и отправьте еще раз.», и отображается URL:
Я дважды и трижды проверял идентификатор клиента, и идентификатор клиента в URL-адресе такой же, как в профиле моего приложения Yahoo. Теперь мне интересно, есть ли дополнительный шаг, который я пропустил при регистрации моего приложения, или что-то не так с моим кодом?
Редактировать: Прогресс достигнут! Тире после идентификатора клиента, должно быть, были частью примера или иным образом были ошибкой. Когда я удалил это, я начал получать новую ошибку с просьбой ввести действительный запрос. Это как-то связано с моим обратным URL, потому что замена его на ‘oob’ позволила ему пройти.
Ответ №1:
Итак, было две ошибки. Во-первых, «—» после идентификатора клиента не должно было там быть. Я не уверен, почему в примере yahoo они там есть, но они не нужны. Вторая причина заключается в том, что мой возвращаемый uri был прописан в моем коде, но не прописан в настройках моего приложения. Теперь это работает!