From 457685063fd4b960441e482cc8b88fa8c972a7d2 Mon Sep 17 00:00:00 2001 From: Nicholas Soteropoulos Date: Mon, 14 Sep 2020 17:19:10 -0400 Subject: Fix mod ui build issues Change-Id: I4d002645240852a3a5f1964d9ffa2cac11c45b47 Signed-off-by: Nicholas Soteropoulos Issue-ID: DCAEGEN2-2317 Signed-off-by: Nicholas Soteropoulos --- mod2/ui/src/app/services/auth.service.ts | 95 ++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 mod2/ui/src/app/services/auth.service.ts (limited to 'mod2/ui/src/app/services/auth.service.ts') diff --git a/mod2/ui/src/app/services/auth.service.ts b/mod2/ui/src/app/services/auth.service.ts new file mode 100644 index 0000000..49bb5f1 --- /dev/null +++ b/mod2/ui/src/app/services/auth.service.ts @@ -0,0 +1,95 @@ +/* + * # ============LICENSE_START======================================================= + * # Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. + * # ================================================================================ + * # Licensed under the Apache License, Version 2.0 (the "License"); + * # you may not use this file except in compliance with the License. + * # You may obtain a copy of the License at + * # + * # http://www.apache.org/licenses/LICENSE-2.0 + * # + * # Unless required by applicable law or agreed to in writing, software + * # distributed under the License is distributed on an "AS IS" BASIS, + * # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * # See the License for the specific language governing permissions and + * # limitations under the License. + * # ============LICENSE_END========================================================= + */ + +import { Injectable } from '@angular/core'; +import { HttpClient, HttpHandler, HttpHeaders } from '@angular/common/http'; +import { Observable } from 'rxjs'; +import { tap } from 'rxjs/internal/operators'; +import { User } from '../models/User'; +import { JwtHelperService } from '@auth0/angular-jwt'; +import { AuthResponse } from '../models/AuthResponse'; +import { Router } from '@angular/router'; +import { environment } from '../../environments/environment'; + +@Injectable({ + providedIn: 'root' +}) +export class AuthService{ + + private user: User = { + username: '', + roles:[] + }; + authPass=false; + isAdmin=false; + reLoginMsg = false; + + constructor( + private http:HttpClient, + private jwtHelper: JwtHelperService, + private router: Router + ) { + + } + + register(user: User): Observable { + return this.http.post(`http://${environment.api_baseURL}:31003/api/auth/signup`, user); + // return this.http.post(`http://localhost:8082/api/auth/signup`, user); + + } + + login(user: User): Observable { + return this.http.post(`http://${environment.api_baseURL}:31003/api/auth/signin`, user) + .pipe( + tap((res: AuthResponse) => { + localStorage.setItem('token', res.token); + this.setUser(); + this.authPass = true; + }) + ); + } + + setUser() { + this.user.username = this.jwtHelper.decodeToken(localStorage.getItem('token')).sub; + this.user.roles = this.jwtHelper.decodeToken(localStorage.getItem('token')).roles; + this.user.fullName = this.jwtHelper.decodeToken(localStorage.getItem('token')).fullName; + + } + + checkLogin(): Observable{ + return this.http.post(`http://${environment.api_baseURL}:31003/api/auth/validate-token`, null); + } + + getJwt() { + if(localStorage.getItem('token')){ + return localStorage.getItem('token'); + } + return ""; + } + + logout() { + localStorage.removeItem('token'); + this.authPass = false; + this.router.navigate(['/login']); + } + + getUser(): User { + return this.user; + } + +} -- cgit 1.2.3-korg