Не могу понять, почему мой пользователь никогда не проходит аутентификацию на внешнем интерфейсе.
Вызов API «Вход», где я получаю токен jwt, сгенерированный на серверной части. Я вручную сохраняю токен в файлах cookie. Проблема возникает, когда мне нужно получить доступ к действию контроллера на внешнем интерфейсе (со страницы бритвы) с атрибутом [Authorize], и я никогда не могу понять, что пользователь не аутентифицирован. Обязательно ли запускать httpContext.SigInAsyn()? Я видел некоторые приложения, которые не запускают это, но пользователь все равно каким-то образом аутентифицируется. Чего мне не хватает?
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(options =\>
{options.LoginPath = "/auth";
options.AccessDeniedPath = "/auth/accessdenied";
options.Cookie.IsEssential = true;
options.SlidingExpiration = true;
double expiresIn = 3600;
options.ExpireTimeSpan = TimeSpan.FromSeconds(expiresIn);
options.Cookie.Name = SConstants.JWT_COOKIE_NAME;
options.Cookie.SameSite = Microsoft.AspNetCore.Http.SameSiteMode.Strict;});
//промежуточное ПО
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
//что я делаю с токеном из серверной части
HttpContext.Response.Cookies.Append(SConstants.JWT_COOKIE_NAME, access_token, new CookieOptions { HttpOnly = true, Secure = true });
Подробнее здесь: https://stackoverflow.com/questions/791 ... on-asp-net