@max0000402

Как сделать свою валидацию токена?

Здравствуйте! Пытаюсь сделать кастомную валидцацию токена, но ничего не выходит.
Я хочу добавить в алгоритм валидации токена проверку на blacklist.
public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(o => o.AddPolicy("MyPolicy", builder =>
            {
                builder.AllowAnyOrigin()
                       .AllowAnyMethod()
                       .AllowAnyHeader();
            }));

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
                    .AddJwtBearer(options =>
                    {
                        options.RequireHttpsMetadata = false;
                        options.TokenValidationParameters = new TokenValidationParameters
                        {
                            ValidateIssuer = true,
                            ValidIssuer = AuthOptions.ISSUER,
                            ValidateAudience = true,
                            ValidAudience = AuthOptions.AUDIENCE,
                            // будет ли валидироваться время существования
                            ValidateLifetime = true,
                            IssuerSigningKey = AuthOptions.GetSymmetricSecurityKey(),
                            ValidateIssuerSigningKey = true,
                            SignatureValidator = AuthOptions.signatureValidator
                        };
                        
                    });

            services.AddControllers();
            services.AddSingleton<TaskQueue>(new TaskQueue());
        }


public static JwtSecurityToken signatureValidator(string token, TokenValidationParameters parameters)
        {
            var jwt = new JwtSecurityToken(token);
            return jwt;
        }

Но даже без лишних проверок мой код работает некорректно. При попытке обратиться к контроллеру я получаю статус 401 Unauthorized.
Спасибо!
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
@max0000402 Автор вопроса
Разобрался в проблеме.
ValidateIssuerSigningKey = false,
SignatureValidator = AuthOptions.signatureValidator


false
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы