Если вы получаете JTW во внешнем интерфейсе, вы можете проверить токен в .NET Core.Проходите через какой-либо внешний пакет проверки от Microsoft или с вашим собственным кодом.
Если вы хотите проверить токен самостоятельно, вы делаете это в разделе конфигурации, например:
public void ConfigureServices(IServiceCollection services)
{
// authentication with JWT
services
.AddAuthentication(o => o.DefaultScheme = JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(cfg =>
{
cfg.Authority = Configuration["Authentication:Authority"];
cfg.Audience = Configuration["Authentication:ClientId"];
cfg.TokenValidationParameters = new TokenValidationParameters()
{
ValidateLifetime = true,
ValidateAudience = true,
ValidateIssuer = true,
RequireExpirationTime = true,
RequireSignedTokens = true
};
});
...
Не забудьте указать, кому вы доверяете (athority и client id), если вы используете Azure Active Directory - вы получаете информацию оттуда.
Это выглядит примерно так:
"Authentication": {
"Authority": "https://login.microsoftonline.com/xxxxx-3602-4cdc-95de-55459c981858/v2.0",
"AppIdUri": "https://<your_ad_name>.onmicrosoft.com/xxxxxx-1bf9-4178-a672-4a1ce52d381a",
"ClientId": "xxxxxx-2095-4202-b75e-ef4f7a0f7ab5"
}
И дляпередняя часть в угловой, вы можете добавить что-то, называемое перехватчиком, который будет добавлять JWT в качестве заголовка к вашим исходящим запросам.
Примерно так:
import {
HttpInterceptor,
HttpRequest,
HttpHandler
} from "@angular/common/http";
import { Injectable } from "@angular/core";
import { AuthService } from "../auth.service";
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
constructor(private authService: AuthService) {}
intercept(req: HttpRequest<any>, next: HttpHandler) {
const authToken = this.authService.getToken();
const authRequest = req.clone({
//adds header authorization: Bearer QWERTYUIOP... to every outgoing request
headers: req.headers.set("Authorization", "Bearer " + authToken)
});
return next.handle(req);
}
}
Также еслиВы хотите защитить страницы в угловом приложении, используйте то, что называется охранниками.
Вот некоторые ресурсы:
И, возможно, взгляните на Identity Server, если у вас есть время: https://identityserver.io/