Untitled
unknown
typescript
2 years ago
1.1 kB
13
Indexable
import { Injectable } from '@angular/core';
import { OAuthService } from 'angular-oauth2-oidc';
import { authConfig } from '../configs/auth-config';
import { UserInfoService } from './user-info.service';
import { ExtendedUserInfo } from '../models/extended-user-info';
@Injectable()
export class AuthService {
constructor(
private oAuthService: OAuthService,
private userInfoService: UserInfoService
) { }
public configureCodeFlow(): void {
this.oAuthService.configure(authConfig);
this.oAuthService.setupAutomaticSilentRefresh();
this.oAuthService.loadDiscoveryDocument().then(() => {
this.oAuthService.tryLogin().then(() => {
if (!this.oAuthService.hasValidIdToken() || !this.oAuthService.hasValidAccessToken()) {
this.oAuthService.initCodeFlow(window.location.href);
}
if (this.oAuthService.hasValidAccessToken()) {
this.oAuthService.loadUserProfile().then((response: any) => {
this.userInfoService.update(new ExtendedUserInfo().deserialize(response.info));
});
}
});
});
}
}
Editor is loading...