Недопустимый идентификатор клиента Yahoo OAuth

#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

Затем я настроил свой код для отправки запроса на авторизацию в 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:

https://api.login .yahoo.com/oauth2/error?client_id={Client_ID}—amp;error=unauthorized_clientamp;error_description=invalid client id

Я дважды и трижды проверял идентификатор клиента, и идентификатор клиента в URL-адресе такой же, как в профиле моего приложения Yahoo. Теперь мне интересно, есть ли дополнительный шаг, который я пропустил при регистрации моего приложения, или что-то не так с моим кодом?

Редактировать: Прогресс достигнут! Тире после идентификатора клиента, должно быть, были частью примера или иным образом были ошибкой. Когда я удалил это, я начал получать новую ошибку с просьбой ввести действительный запрос. Это как-то связано с моим обратным URL, потому что замена его на ‘oob’ позволила ему пройти.

Ответ №1:

Итак, было две ошибки. Во-первых, «—» после идентификатора клиента не должно было там быть. Я не уверен, почему в примере yahoo они там есть, но они не нужны. Вторая причина заключается в том, что мой возвращаемый uri был прописан в моем коде, но не прописан в настройках моего приложения. Теперь это работает!