Guest User

Untitled

a guest
May 30th, 2017
28
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. mport { Injectable } from '@angular/core';
  2. import { Http, Headers, Response } from '@angular/http';
  3. import { Observable } from 'rxjs';
  4. import 'rxjs/add/operator/map'
  5.  
  6. @Injectable()
  7. export class AuthenticationService {
  8.     public token: string;
  9.  
  10.     constructor(private http: Http) {
  11.         // set token if saved in local storage
  12.         var currentUser = JSON.parse(localStorage.getItem('currentUser'));
  13.         this.token = currentUser && currentUser.token;
  14.     }
  15.  
  16.     login(username: string, password: string): Observable<boolean> {
  17.         return this.http.post('/api/authenticate', JSON.stringify({ username: username, password: password }))
  18.             .map((response: Response) => {
  19.                 // login successful if there's a jwt token in the response
  20.                 let token = response.json() && response.json().token;
  21.                 if (token) {
  22.                     // set token property
  23.                     this.token = token;
  24.  
  25.                     // store username and jwt token in local storage to keep user logged in between page refreshes
  26.                     localStorage.setItem('currentUser', JSON.stringify({ username: username, token: token }));
  27.  
  28.                     // return true to indicate successful login
  29.                     return true;
  30.                 } else {
  31.                     // return false to indicate failed login
  32.                     return false;
  33.                 }
  34.             });
  35.     }
  36.  
  37.     logout(): void {
  38.         // clear token remove user from local storage to log user out
  39.         this.token = null;
  40.         localStorage.removeItem('currentUser');
  41.     }
  42. }
Add Comment
Please, Sign In to add comment