| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- import { Injectable } from '@angular/core';
- import { HttpClient } from '@angular/common/http';
- import { User } from '../models/user';
- import { map } from 'rxjs/operators';
- @Injectable({
- providedIn: 'root'
- })
- export class AuthService {
- private url = 'https://www.googleapis.com/identitytoolkit/v3/relyingparty';
- private apikey = 'AIzaSyDanKihOdPD7MgARSec7_B7NtMcSSJbu4Q';
- userToken: string;
- // Crear nuevo user
- // https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=[API_KEY]
- // Login
- // https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=[API_KEY]
- constructor( private http: HttpClient ) {
- this.leerToken();
- }
- logout() {
- localStorage.removeItem('token');
- }
- login( user: User ) {
- console.log(user);
- const authData = {
- email: user.email,
- password: user.password,
- returnSecureToken: true
- };
- return this.http.post(
- `${ this.url }/verifyPassword?key=${ this.apikey }`,
- authData
- ).pipe(
- map( resp => {
- this.guardarToken( resp['idToken'] );
- return resp;
- })
- );
- }
- nuevouser( user: User ) {
- const authData = {
- ...user,
- returnSecureToken: true
- };
- return this.http.post(
- `${ this.url }/signupNewUser?key=${ this.apikey }`,
- authData
- ).pipe(
- map( resp => {
- this.guardarToken( resp['idToken'] );
- return resp;
- })
- );
- }
- private guardarToken( idToken: string ) {
- this.userToken = idToken;
- localStorage.setItem('token', idToken);
- let hoy = new Date();
- hoy.setSeconds( 3600 );
- localStorage.setItem('expira', hoy.getTime().toString() );
- }
- leerToken() {
- if ( localStorage.getItem('token') ) {
- this.userToken = localStorage.getItem('token');
- } else {
- this.userToken = '';
- }
- return this.userToken;
- }
- estaAutenticado(): boolean {
- if ( this.userToken.length < 2 ) {
- return false;
- }
- const expira = Number(localStorage.getItem('expira'));
- const expiraDate = new Date();
- expiraDate.setTime(expira);
- if ( expiraDate > new Date() ) {
- return true;
- } else {
- return false;
- }
- }
- }
|