Чтение файлов cookie через поддомен в WebApi - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть приложение. NET Core 3.1 WebApi, где пользовательский интерфейс и API размещены в разных поддоменах одного и того же домена root, скажем, https://api.domain.com и https://ui.domain.com

Сайт пользовательского интерфейса устанавливает некоторые файлы cookie ( .domain.com), который мне нужно прочитать в бэкэнде API, но что бы я ни пытался - куки никогда не передаются. У меня включена политика CORS, которая разрешает субдомены и учетные данные whildchar в моих Startup.cs ConfigureServices:

services.AddCors(options =>
            {
                options.AddPolicy("CorsPolicy",
                builder =>
                {
                    builder.WithOrigins("https://*.domain.com")
                           .SetIsOriginAllowedToAllowWildcardSubdomains
                           .AllowAnyMethod()
                           .AllowAnyHeader()
                           .AllowCredentials();
                });
            });

И использовать его в приложении. Настройка:

app.UseCors("CorsPolicy");

Я также установил политику Кука ie:

    app.UseCookiePolicy(
        new CookiePolicyOptions()
        {
            MinimumSameSitePolicy = Microsoft.AspNetCore.Http.SameSiteMode.Lax

        });

Но при вызове https://api.domain.com из https://ui.domain.com ожидается печенье не там.

Если пользовательский интерфейс и API находятся на одном и том же поддомене - это работает. Чего мне не хватает?

1 Ответ

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

Я добавил { withCredentials: true } к каждому $http запросу. Немного боли, но это единственное, что сработало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...