Advertisement
Guest User

Untitled

a guest
Dec 14th, 2016
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. import { 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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement