Я сам не понял как починил. Изменил я только конфигурацию (если точнее только переминовал "TokenNameInCookie" на "TokenNameInCookies" чтобы была привязка к свойству) и убрал лишнию "Bearer " в context.Token. Вот измененный код:
builder.Services.AddAuthentication(auth =>
{
auth.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
auth.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer((opts) =>
{
opts.RequireHttpsMetadata = false,
opts.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = false,
//ValidIssuer = jwtOptions.Issuer,
ValidateAudience = false,
//ValidAudience = jwtOptions.Audience,
ValidAlgorithms = new List<string> { jwtOptions.Algorithm },
ValidateIssuerSigningKey = true,
IssuerSigningKey = jwtOptions.GetSymmetricSecurityKey(),
ValidateLifetime = true,
LifetimeValidator = (notBefore, expires, securityToken, validationParameters) =>
{
if (expires != null)
return expires.Value > DateTime.UtcNow;
return false;
},
//Тут пишуться валидные значения, чтобы потом аут через токен(проверка на валидность)
};
opts.Events = new JwtBearerEvents
{
OnMessageReceived = async (context) =>
{
if (context is not null
&& string.IsNullOrEmpty(context.Token)
&& context.Request.Cookies.ContainsKey(jwtOptions.TokenNameInCookies)
&& context.Request.Cookies.TryGetValue(jwtOptions.TokenNameInCookies, out var token))
{
context.Token = token;
}
await Task.CompletedTask;
}
};
});
Токен ложу через Authorization header(swagger-ом), код отвечающий за то чтобы дать значение данному хеддеру я не изменял. И вот не понятно, почему раньше не работало когда в хеддере токен был а в куках нет?