У меня есть новый ASP. Net Core 3 MVC сайт, к которому я добавил GraphQL с HotChocolate . У меня есть пользователи, выполняющие вход на сторону MVC с использованием аутентификации на основе cook ie с Auth0:
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddCookie()
.AddOpenIdConnect("Auth0", options =>
{
...
});
Но для запросов GraphQL мне нужна аутентификация JWT, для которой я бы использовал:
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(config =>
{
...
});
Они оба независимо работают нормально. Cook ie auth позволяет использовать контроллер; JWT auth позволяет использовать GQL. Но я не могу понять, как получить cook ie auth для контроллеров и JWT для /graphql
маршрута.
Небольшой контекст: HotChocolate использует собственное промежуточное ПО для обработки запросов, которые войти в маршрут /graphql
. Это не на контроллере, поэтому я не могу просто указать схему с атрибутом Authorize
, так как нет контроллера для его установки.
Подобные вопросы
(Было несколько других, в основном сосредоточенных на объединении REST и MVC, но оба они go для контроллеров так что сценарий немного другой.)