Swashbuckle Swagger UI OAuth2 GET запрос токена unsupported_grant_type - PullRequest
0 голосов
/ 09 сентября 2018

Проблемы

  • Я использую Swashbuckle 5.6.0 для ASP.NET Web Api 2 с аутентификацией токена OAuth2.Когда я пытаюсь авторизовать действие контроллера, помеченное [Authorize] с помощью красной кнопки восклицательного знака в SwaggerUI, я получаю сообщение об ошибке

    unsupported_grant_type

  • Другая проблема заключается в том, что SwaggerUI делает запрос GET для получения токена.В Postman, если я отправляю POST запрос к конечной точке токена с требуемым Content-Type, я получаю действительный ответ токена.Если я вместо этого отправлю запрос GET в Почтальон, он тоже не будет работать, я получу

    unsupported_grant_type

Исследовано до сих пор

  • Похоже, эта ошибка указывает на то, что для запроса к конечной точке токена требуется Content-Type "application/x-www-form-urlencoded".Тем не менее, я не могу найти способ установить Content-Type в Swashbuckle для запросов токенов (я могу успешно установить заголовки для действий контроллера, используя IOperationFilters).

Вопрос

ИтакЕсть ли способ через Swashbuckle, я могу настроить SwaggerUI для использования POST с определенным заголовком Content-Type при нацеливании на конечную точку OAuth2 Token?

1 Ответ

0 голосов
/ 12 марта 2019

Это зависит от того, есть ли у вас 1) реальная реализация oAuth / OpenID или 2) "просто" конечная точка токена и атрибуты [Authorize] на контроллерах.

Если у вас # 2, то ответ SO здесь запрашивает имя пользователя и пароль от конечной точки токена по вашему выбору и устанавливает client_id из поля apikey (если требуется), и этот SO-ответ позволяет вставить токен на предъявителя в поле 'apikey'.

Если у вас # 1, вам нужно убедиться, что вы знаете свои конечные точки 'auth' и 'token' и пометить их в соответствии с документацией swashbuckle oauth2

...