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  }