47 lines
1.2 KiB
TypeScript
47 lines
1.2 KiB
TypeScript
|
// #docregion
|
||
|
import { Component } from '@angular/core';
|
||
|
import { Router } from '@angular/router';
|
||
|
import { AuthService } from './auth.service';
|
||
|
|
||
|
@Component({
|
||
|
template: `
|
||
|
<h2>LOGIN</h2>
|
||
|
<p>{{message}}</p>
|
||
|
<p>
|
||
|
<button (click)="login()" *ngIf="!authService.isLoggedIn">Login</button>
|
||
|
<button (click)="logout()" *ngIf="authService.isLoggedIn">Logout</button>
|
||
|
</p>`
|
||
|
})
|
||
|
export class LoginComponent {
|
||
|
message: string;
|
||
|
|
||
|
constructor(public authService: AuthService, public router: Router) {
|
||
|
this.setMessage();
|
||
|
}
|
||
|
|
||
|
setMessage() {
|
||
|
this.message = 'Logged ' + (this.authService.isLoggedIn ? 'in' : 'out');
|
||
|
}
|
||
|
|
||
|
login() {
|
||
|
this.message = 'Trying to log in ...';
|
||
|
|
||
|
this.authService.login().subscribe(() => {
|
||
|
this.setMessage();
|
||
|
if (this.authService.isLoggedIn) {
|
||
|
// Get the redirect URL from our auth service
|
||
|
// If no redirect has been set, use the default
|
||
|
let redirect = this.authService.redirectUrl ? this.authService.redirectUrl : '/crisis-center/admin';
|
||
|
|
||
|
// Redirect the user
|
||
|
this.router.navigate([redirect]);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
logout() {
|
||
|
this.authService.logout();
|
||
|
this.setMessage();
|
||
|
}
|
||
|
}
|