From 1553e15d82b8a1ec4967a90d43b33274f8215c44 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 14 Apr 2016 22:07:46 +0200 Subject: Implement user requests autorizations in the client side --- client/angular/users/services/auth.service.ts | 49 +++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 6 deletions(-) (limited to 'client/angular/users/services/auth.service.ts') diff --git a/client/angular/users/services/auth.service.ts b/client/angular/users/services/auth.service.ts index 80886346c..89412c3df 100644 --- a/client/angular/users/services/auth.service.ts +++ b/client/angular/users/services/auth.service.ts @@ -1,20 +1,23 @@ import { Injectable } from 'angular2/core'; -import { Http, Response, Headers, URLSearchParams } from 'angular2/http'; +import { Http, Response, Headers, URLSearchParams, RequestOptions } from 'angular2/http'; import { Observable, Subject } from 'rxjs/Rx'; import { AuthStatus } from '../models/authStatus'; +import { User } from '../models/user'; @Injectable() export class AuthService { - loginChanged$ = this._loginChanged.asObservable(); - - private _loginChanged = new Subject(); + loginChanged$; + private _loginChanged; private _baseLoginUrl = '/api/v1/users/token'; private _clientId = '56f055587305d40b21904240'; private _clientSecret = 'megustalabanana'; - constructor (private http: Http) {} + constructor (private http: Http) { + this._loginChanged = new Subject(); + this.loginChanged$ = this._loginChanged.asObservable(); + } login(username: string, password: string) { let body = new URLSearchParams(); @@ -42,12 +45,46 @@ export class AuthService { // TODO make HTTP request } + getRequestHeader(): Headers { + return new Headers({ 'Authorization': `${this.getTokenType()} ${this.getToken()}` }); + } + + getAuthRequestOptions(): RequestOptions { + return new RequestOptions({ headers: this.getRequestHeader() }); + } + + getToken(): string { + return localStorage.getItem('access_token'); + } + + getTokenType(): string { + return localStorage.getItem('token_type'); + } + + getUser(): User { + if (this.isLoggedIn() === false) { + return null; + } + + const user = User.load(); + + return user; + } + + isLoggedIn(): boolean { + if (this.getToken()) { + return true; + } else { + return false; + } + } + setStatus(status: AuthStatus) { this._loginChanged.next(status); } private handleError (error: Response) { console.error(error); - return Observable.throw(error.json().error || 'Server error'); + return Observable.throw(error.json() || { error: 'Server error' }); } } -- cgit v1.2.3