Angular-приложения часто взаимодействуют с внешними сервисами, требующими безопасной аутентификации. OAuth2 и OpenID Connect (OIDC) предоставляют стандартизованные протоколы для авторизации и аутентификации.
OAuth2 Протокол авторизации, позволяющий приложению получать доступ к ресурсам пользователя без передачи пароля. Основные гранты:
OpenID Connect Расширение OAuth2, добавляющее слой аутентификации. Позволяет получать информацию о пользователе через ID Token в формате JWT.
Установка библиотек Для работы с OAuth2/OIDC в
Angular часто используют @azure/msal-angular,
angular-oauth2-oidc или oidc-client.
Настройка конфигурации
export const authConfig: AuthConfig = {
issuer: 'https://example.com',
redirectUri: window.location.origin,
clientId: 'angular-app-client-id',
responseType: 'code',
scope: 'openid profile email api.read',
showDebugInformation: true
};Добавление охраняемых маршрутов (guards)
Используется AuthGuard для предотвращения доступа
неаутентифицированных пользователей.
{ path: 'dashboard', component: DashboardComponent, canActivate: [AuthGuard] }Получение токенов и взаимодействие с API После успешного входа приложение получает access token и id token, которые можно использовать для аутентификации запросов к API.
this.oauthService.loadDiscoveryDocumentAndTryLogin().then(() => {
const token = this.oauthService.getAccessToken();
this.apiService.getData(token).subscribe();
});Обновление токенов (silent refresh) Для
поддержания сессии без повторного входа используется автоматическое
обновление токенов через refresh_token или
iframe-перезапрос.
sessionStorage или memory storage, чтобы
минимизировать риски XSS.