-
Notifications
You must be signed in to change notification settings - Fork 13
/
auth.service.ts
39 lines (33 loc) · 1.01 KB
/
auth.service.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import { Injectable } from '@angular/core';
import { User, UserManager } from 'oidc-client-ts';
import { environment } from '../../../environments/environment';
@Injectable({
providedIn: 'root',
})
export class AuthService {
userManager: UserManager;
constructor() {
const settings = {
authority: environment.stsAuthority,
client_id: environment.clientId,
redirect_uri: `${environment.clientRoot}signin-callback`,
silent_redirect_uri: `${environment.clientRoot}silent-callback.html`,
post_logout_redirect_uri: `${environment.clientRoot}`,
response_type: 'code',
scope: environment.clientScope,
};
this.userManager = new UserManager(settings);
}
getUser(): Promise<User | null> {
return this.userManager.getUser();
}
login(): Promise<void> {
return this.userManager.signinRedirect();
}
renewToken(): Promise<User | null> {
return this.userManager.signinSilent();
}
logout(): Promise<void> {
return this.userManager.signoutRedirect();
}
}