github.com/in4it/ecs-deploy@v0.0.42-0.20240508120354-ed77ff16df25/webapp/src/app/services/auth.service.ts (about) 1 2 import {map} from 'rxjs/operators'; 3 import { Injectable } from '@angular/core'; 4 import {HttpClient, HttpHeaders } from '@angular/common/http'; 5 import { Observable } from 'rxjs'; 6 7 8 @Injectable() 9 export class AuthService { 10 constructor(private http: HttpClient) { } 11 12 getToken(): string { 13 return localStorage.getItem("token") 14 } 15 setToken(token: string): void { 16 localStorage.setItem('token', token); 17 } 18 19 login(username: string, password: string) { 20 return this.http.post('/ecs-deploy/login', {username: username, password: password }).pipe( 21 map((response: Response) => { 22 // login successful if there's a jwt token in the response 23 let res = response; 24 if (res && res["token"]) { 25 // store user details and jwt token in local storage to keep user logged in between page refreshes 26 localStorage.setItem('token', res["token"]); 27 } 28 })); 29 } 30 31 logout() { 32 // remove user from local storage to log user out 33 localStorage.removeItem('token'); 34 } 35 }