JWT Issuer Invalid Asp. Net Core - PullRequest
       4

JWT Issuer Invalid Asp. Net Core

0 голосов
/ 16 марта 2020

Мой JWT не проверяется, поскольку утверждение эмитента не выполняется, и я не знаю, почему создание токена выглядит следующим образом:

            var key = Encoding.UTF8.GetBytes(_config["JWT:Secret"]);
            var signingCredentials = new SigningCredentials(
                new SymmetricSecurityKey(key), 
                SecurityAlgorithms.HmacSha256Signature);

            var token = new JwtSecurityToken(
               issuer: _config["JWT:Issuer"],
               claims: claims,
               notBefore: DateTime.Now,
               expires: DateTime.Now.AddMinutes(20),
               signingCredentials: signingCredentials
               );

и в моем файле Startup.cs я проверяю токен таким образом:

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
                .AddJwtBearer(JwtBearerDefaults.AuthenticationScheme, options =>
                {
                    options.IncludeErrorDetails = true;
                    options.RequireHttpsMetadata = false;
                    options.ClaimsIssuer = Configuration["JWT:Issuer"];
                    options.TokenValidationParameters = new TokenValidationParameters()
                    {
                        ValidateIssuerSigningKey = true,
                        IssuerSigningKey = new SymmetricSecurityKey(
                            Encoding.UTF8.GetBytes(Configuration["JWT:Secret"])),
                        // works when set to false
                        ValidateIssuer = true,
                        ValidateAudience = false,
                        ValidateLifetime = true
                    };
                });

Итак, почему я получаю эту ошибку:

Ошибка канала-носителя = "invalid_token", error_description = "Эмитент 'LoggerApp' недействителен"

примечание: _config и Configuration - это одна и та же зависимость

1 Ответ

0 голосов
/ 17 марта 2020

Вы должны установить ValidIssuer свойство TokenValidationParameters, чтобы убедиться, что валидация эмитента работает:

ValidateIssuer = true,
ValidIssuer = Configuration["JWT:Issuer"],
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...