import {Injectable} from '@angular/core'; import {HttpClient} from '@angular/common/http'; import {JwtHelperService} from '@auth0/angular-jwt'; import {Observable} from 'rxjs'; import {jwtDecode} from 'jwt-decode'; import {environment} from '../../environments/environment'; @Injectable({ providedIn: 'root', }) export class AuthService { baseApi = `${environment.baseApi}/auth/login`; jwtHelper = new JwtHelperService(); constructor(private http: HttpClient) { } login(username: string, password: string): Observable { return this.http.post(this.baseApi, {username, password}); } isAuthenticated(): boolean { const token = localStorage.getItem('token'); return token !== null && !this.jwtHelper.isTokenExpired(token); } logout(): void { localStorage.removeItem('token'); } getToken(): string | null { return localStorage.getItem('token'); } getUserInfo(): any { const token = this.getToken(); if (token) { return jwtDecode(token); } return null; } }