Отсутствует ошибка значения параметра grant_type в oAuth 2.0 - PullRequest
0 голосов
/ 17 февраля 2020

Я использую oAuth 2.0 в своем приложении и после получения кода на первом шаге использую следующий метод для получения токена доступа. Хотя я устанавливаю и добавляю параметр grant_type в URL, я сталкиваюсь с «Отсутствует значение параметра grant_type» ошибка. Выполняя поиск в Интернете, например Проверьте параметр «grant_type», кто-то предлагает добавить заголовок к запросу, но я не уверен, подходит ли он для моей ситуации. С другой стороны, я уже попробовал другие предложения, но ни одно из них не работает :( Есть идеи?

Контроллер:

public RedirectResult Index(string code)
{
    var tokenEndpoint = "https://demo.com/AccessTokenController";
    var grantType = "authorization_code";
    var clientId = Uri.EscapeDataString("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
    var clientSecret = Uri.EscapeDataString("yyyyyyyyyyyyyyyyyyyyyyyyyyyyy");
    var redirectUri = Uri.EscapeDataString("http://localhost:53105/DemoController/Index");

    return Redirect($"{tokenEndpoint}?grant_type={grantType}&code={code}&client_id={clientId}&client_secret={clientSecret}&redirect_uri={redirectUri}&");

    //I also tried by "grant_type=authorization_code"
    //return Redirect($"{tokenEndpoint}?grant_type=authorization_code&code={code}&client_id={clientId}&client_secret={clientSecret}&redirect_uri={redirectUri}&");
}

1 Ответ

0 голосов
/ 18 февраля 2020

Конечная точка токена не находит параметры, которые вы отправляете, потому что она ищет в неправильном месте.

Ваш метод перенаправляет на конечную точку токена, что приводит к запросу GET.

Вам необходимо POST к этой конечной точке с параметрами, закодированными как application/x-www-form-urlencoded.

См. OAuth2 spe c для получения дополнительной информации.

...