Как выполнить аутентификацию на основе токенов JWT для веб-приложения MVC Asp.Net Core 2.2? - PullRequest
0 голосов
/ 25 июня 2019

У меня есть веб-приложение Asp.Net Core 2.2 MVC, в котором вызовы базы данных обрабатываются через Asp.Net Core Web Api 2.2, и этот веб-API генерирует сообщение токена JWT, проверяющее учетные данные для входа, и возвращает его обратно в приложение MVC сТокен JWT.

В ядре приложения MVC Asp.Net контроллеры, снабженные атрибутом Authorize для проверки последующего запроса, поступают из браузера, но здесь я не могу проверить токен JWT.

Поэтому, пожалуйста,подскажите, как проверить токен JWT в веб-приложении MVC Asp.Net Core 2.2.

Заранее спасибо!

Код:

 services.AddAuthentication(j =>
{
    j.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
    j.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
    j.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(x =>
{
    x.SaveToken = true;
    x.RequireHttpsMetadata = true;
    x.TokenValidationParameters = new TokenValidationParameters
    {
        ValidateIssuer = true,
        ValidateAudience = true,
        //ValidateLifetime = true,
        //ValidateIssuerSigningKey = true,
        ValidIssuer = "xyz.com",
        ValidAudience = "xyz.com",
        IssuerSigningKey = new SymmetricSecurityKey(key),
        ClockSkew = TimeSpan.FromMinutes(5)
    };
});


app.UseAuthentication();
app.UseMvc(routes =>
{
    routes.MapRoute(
    name: "default",
    template: "{controller=Login}/{action=Login}/{id?}");
});

1 Ответ

0 голосов
/ 26 июня 2019

Кажется, вы отправляете запрос в web api с учетными данными пользователя, web api validate credential и возвращаетесь в клиент mvc с токеном JWT.

В своем клиентском приложении после получения токена и декодирования для получения утверждений вы можете создать новый ClaimsIdentity, добавить свои утверждения и войти в систему. Смотрите пример кода здесь .

Если вы хотите узнать, как декодировать токен JWT, вы можете обратиться к приведенным ниже примерам кода:

Как декодировать токен JWT? .

Декодирование и проверка токена JWT с использованием System.IdentityModel.Tokens.Jwt

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