В современной веб-разработке безопасная аутентификация и авторизация являются важнейшими аспектами создания надежных приложений. Angular, популярная платформа JavaScript, предоставляет мощную библиотеку под названием «angular-jwt», которая упрощает реализацию веб-токенов JSON (JWT) для безопасной аутентификации и авторизации на основе токенов. В этой статье мы рассмотрим различные методы, предлагаемые пакетом npm “angular-jwt”, а также примеры кода для повышения безопасности ваших приложений Angular.
-
Установка angular-jwt:
Чтобы начать, вам необходимо установить пакет angular-jwt, выполнив следующую команду в каталоге проекта Angular:npm install angular-jwt -
Импорт модуля JWT:
Далее импортируйте JwtModule из пакета angular-jwt в файл модуля Angular (например,app.module.ts):import { JwtModule } from 'angular-jwt'; @NgModule({ imports: [ // Other modules... JwtModule.forRoot({ // Configuration options... }) ], // Other module configurations... }) export class AppModule { } -
Настройка angular-jwt:
JwtModule предоставляет несколько вариантов конфигурации для настройки поведения модуля JWT. Например, вы можете установить функцию получения токена, имя токена и ключ истечения срока действия токена. Вот пример конфигурации методаforRoot():JwtModule.forRoot({ config: { tokenGetter: () => localStorage.getItem('access_token'), allowedDomains: ['example.com'], disallowedRoutes: ['example.com/login'], throwNoTokenError: true } }) -
Перехватчик для внедрения токенов.
Чтобы автоматически внедрять токен JWT в исходящие HTTP-запросы, вы можете создать перехватчик. Этот перехватчик добавит токен JWT в заголовокAuthorization. Вот пример реализации перехватчика:import { Injectable } from '@angular/core'; import { JwtHelperService } from 'angular-jwt'; import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http'; import { Observable } from 'rxjs'; @Injectable() export class JwtInterceptor implements HttpInterceptor { constructor(private jwtHelper: JwtHelperService) {} intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { const token = localStorage.getItem('access_token'); if (token && !this.jwtHelper.isTokenExpired(token)) { request = request.clone({ setHeaders: { Authorization: `Bearer ${token}` } }); } return next.handle(request); } } -
Регистрация перехватчика:
Зарегистрируйте перехватчик в массивеprovidersвашего модуля Angular, чтобы сделать его доступным для использования:import { HTTP_INTERCEPTORS } from '@angular/common/http'; import { JwtInterceptor } from './jwt.interceptor'; @NgModule({ providers: [ // Other providers... { provide: HTTP_INTERCEPTORS, useClass: JwtInterceptor, multi: true } ], // Other module configurations... }) export class AppModule { }
В этой статье мы рассмотрели пакет npm angular-jwt и его методы для безопасной аутентификации и авторизации в приложениях Angular. Мы рассмотрели установку пакета, его настройку и реализацию перехватчика для внедрения токенов в HTTP-запросы. Используя возможности веб-токенов JSON, вы можете повысить безопасность своих приложений Angular и защитить конфиденциальные ресурсы.
Реализуя эти методы с помощью пакета angular-jwt, вы можете обеспечить безопасную аутентификацию и авторизацию в своих приложениях Angular, обеспечивая надежный и надежный пользовательский интерфейс.