Аутентификация при помощи кук и токена

На сайте есть 2 способа аутентификации. Первый для мобильного приложения через jwt токен, второй через веб интерфейс для админов.

Я не могу понять, почему не проходит аутентификация через куки. Вот мой код:

Startup:

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
    options.TokenValidationParameters = new TokenValidationParameters
    {
        ValidateIssuer = true,
        ValidateAudience = true,
        ValidateLifetime = true,
        ValidateIssuerSigningKey = true,
        ValidIssuer = "some",
        ValidAudience = "some",
        IssuerSigningKey = signingDecodingKey.GetKey(),
    };
})
.AddCookie("Admin_Scheme", options => 
{
    options.LoginPath = new PathString("/Admin/Auth/Login");
});    

MyAuthService:

//default claims
var claims = new List<Claim>
{
    new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
    new Claim(ClaimsIdentity.DefaultNameClaimType, user.Name),
    new Claim(ClaimsIdentity.DefaultRoleClaimType, "Manager"),
};

//Permissions
var permissions = await _context.PermissonRoles
    .Include(pr => pr.Permission)
    .Where(pr => pr.IdRole == user.Role.Id)
    .Select(pr => pr.Permission)
    .ToListAsync();

//Fill data
foreach (var permission in permissions)
{
    claims.Add(new Claim("Permission", permission.PermissionCode));
}

var claimsIdentity = new ClaimsIdentity(claims, "Token", ClaimsIdentity.DefaultNameClaimType, ClaimsIdentity.DefaultRoleClaimType);

await HttpContext.SignInAsync("Admin_Scheme", new ClaimsPrincipal(claimsIdentity),
new AuthenticationProperties
{
    ExpiresUtc = DateTime.UtcNow.AddMinutes(60),
    IsPersistent = true
});  

Если закомментировать часть кода, которая касается jwt аутентификация, через куки работает. Что делаю не так?


Ответы (0 шт):