1 import { Injectable } from '@angular/core';
2 import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';
3 import { BehaviorSubject, Observable } from 'rxjs';
4 import { map } from 'rxjs/operators';
5 import { User } from '../_models/user';
10 export class AuthenticationService {
12 private currentUserSubject: BehaviorSubject<User>;
13 public currentUser: Observable<User>;
15 private baseUrl = 'http://localhost:8080/';
16 private captchaUrl = this.baseUrl+'capchaverify';
18 constructor(private http: HttpClient) {
19 this.currentUserSubject = new BehaviorSubject<User>(JSON.parse(localStorage.getItem('currentUser')));
20 this.currentUser = this.currentUserSubject.asObservable();
24 headers: new HttpHeaders({
25 'Content-Type':'application/json'
29 public get currentUserValue(): User {
30 return this.currentUserSubject.value;
33 login(email: string, password: string) {
34 return this.http.post<any>(`auth/login`, { email, password })
35 // .subscribe(user => {
37 if (user && user.token) {
38 // store user details in local storage to keep user logged in
39 localStorage.setItem('currentUser', JSON.stringify(user.result));
40 sessionStorage.setItem('roleName',user.roleName);
41 this.currentUserSubject.next(user);
49 // remove user data from local storage for log out
50 localStorage.removeItem('currentUser');
51 this.currentUserSubject.next(null);
54 send(data): Observable<any> {
55 return this.http.post<any>(this.captchaUrl,data,this.httpOptions);