Неправильное время истечения в токене безопасности Jwt в ядре .net - PullRequest
0 голосов
/ 26 ноября 2018

Я выполняю аутентификацию с использованием Jwt Security Token.

var token = new JwtSecurityToken(
            issuer: "mysite.com",
            audience: "mysite.com",
            notBefore: DateTime.Now,
            expires: DateTime.Now.AddDays(1),
            claims: claimsdata,
            signingCredentials: signInCred
            );

startup.cs

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
        {
            options.TokenValidationParameters = new TokenValidationParameters
            {
                ValidateIssuer = true,
                ValidateAudience = true,
                ValidateIssuerSigningKey = true,
                ValidIssuer = "mysite.com",
                ValidAudience = "mysite.com",
                ClockSkew=TimeSpan.Zero,
                IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("mykey"))
            };
        });

, но когда я отлаживаю этот код, я получаю в следующий раз

image

Но сейчас у меня время на ПК 12:58 ...

Помогите, пожалуйста, указать правильное время истечения токена ..

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Я реализовал следующий фрагмент, который решил мой запрос ...

        var date = DateTime.Now.ToString();
        DateTime convertedDate = DateTime.SpecifyKind(
            DateTime.Parse(date),
            DateTimeKind.Utc);
        DateTime dt = convertedDate.ToLocalTime();
0 голосов
/ 26 ноября 2018

enter image description here Datetime.Now в JWT возвращает время UTC.вот почему вы не можете получить местное время.Если вы хотите перейти на местное время, попробуйте изменить время UTC на местное время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...