Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import { HttpClient } from '@angular/common/http';
- import { Injectable } from '@angular/core';
- import { environment } from '../../../environments/environment';
- @Injectable({
- providedIn: 'root'
- })
- export class AuthService {
- constructor(
- private http: HttpClient
- ) { }
- getAuthToken(): string {
- return localStorage.getItem('authToken');
- }
- async RegisterAsync(username: string, password: string): Promise<void> {
- return new Promise<void>((resolve, reject) => {
- let newUser: any = {
- username: username,
- password: password,
- };
- this.http.put<any>(`${environment.API_BASE_URL}${environment.API_Register}`, newUser, { withCredentials: true }).toPromise().then(
- data => {
- resolve();
- },
- error => {
- reject(error);
- }
- ).catch(e => {
- reject(e);
- });
- });
- }
- async isLoggedInAsync(): Promise<boolean> {
- let userDetails: any = await this.getUserDetailsAsync();
- return (userDetails != null);
- }
- async getUserDetailsAsync(): Promise<any> {
- return new Promise<any>((resolve, reject) => {
- this.http.get<any>(`${environment.API_BASE_URL}${environment.API_GetAuthenticatedUser}`).toPromise()
- .then((data: any) => {
- resolve(data);
- }).catch((reason: any) => {
- resolve(null); // Soft error
- //reject(reason); // Hard error
- });
- });
- }
- async LoginAsync(username: string, password: string): Promise<boolean> {
- localStorage.removeItem('authToken');
- return new Promise<boolean>((resolve, reject) => {
- let loginCredentials: any = {
- username: username,
- password: password,
- };
- this.http.post<any>(`${environment.API_BASE_URL}${environment.API_Login}`, loginCredentials, { withCredentials: true }).toPromise().then(
- data => {
- if (data && data['token']) {
- localStorage.setItem('authToken', data['token']);
- resolve(true);
- }
- else {
- resolve(false);
- }
- },
- error => {
- resolve(false);
- //reject(error); // Hard error
- }
- ).catch(e => {
- console.log(e);
- });
- });
- }
- async LogoutAsync(): Promise<boolean> {
- return new Promise<boolean>((resolve, reject) => {
- this.http.post<any>(`${environment.API_BASE_URL}${environment.API_Logout}`, {}).toPromise().then(
- data => {
- localStorage.removeItem('authToken');
- resolve(true);
- },
- error => {
- resolve(false);
- //reject(error); // Hard error
- }
- ).catch(e => {
- console.log(e);
- });
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement