Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace AppBundleServices;
- use FirebaseJWTJWT;
- class JwtAuth{
- public $manager;
- public $key;
- public function __construct($manager){
- $this-> manager = $manager;
- $this-> key = 'soytuclavesecreta12344321';
- }
- public function signup($email,$password, $getHash = null){
- //Buscamos en la base de datos el usuario con findOneBy
- $user = $this->manager->getRepository('BackendBundle:User')->findOneBy(array(
- "email" => $email,
- "password" => $password
- ));
- $signup = false;
- if(is_object($user)){
- $signup = true;
- }
- if($signup ==true){
- //generar token
- $token = array(
- 'sub' => $user->getId(),
- 'email' => $user->getEmail(),
- 'name' => $user->getName(),
- 'surname' => $user->getSurname(),
- 'iat' => time(),
- 'exp' => time()+(7*24*60*60)
- );
- $jwt = JWT::encode($token, $this->key, 'HS256');
- $decoded = JWT::decode($jwt, $this->key, array('HS256'));
- if($getHash == null){
- $data = $jwt;
- }else{
- $data = $decoded;
- }
- }else{
- $data = array(
- 'status' => 'error',
- 'data'=> 'Login failed'
- );
- }
- return $data;
- }
- public function checkToken($jwt,$getIdentity = false){
- $auth = false;
- try{
- $decoded = JWT::decode($jwt, $this->key, array('HS256'));
- }catch(UnexpectedValueException $e){
- $auth = false;
- }catch(DomainException $e){
- $auth = false;
- }
- if(is_object($decoded) && isset($decoded -> sub)){
- $auth = true;
- }else{
- $auth = false;
- }
- if($getIdentity == false){
- return $auth;
- }else{
- return $decoded;
- }
- }
- }
- import { Component, OnInit } from '@angular/core';
- import { Router, ActivatedRoute, Params } from '@angular/router';
- import {UserService} from '../services/user.service';
- @Component({
- selector: 'login',
- templateUrl: '../views/login.html',
- providers: [UserService]
- })
- export class LoginComponent implements OnInit{
- public title: string;
- public user;
- public identity;
- public token;
- constructor(
- private _route: ActivatedRoute,
- private _router: Router,
- private _userService: UserService
- ){
- this.title = 'Identifícate';
- this.user = {
- "email":"",
- "password":"",
- "gethash": "false"
- };
- }
- ngOnInit(){
- console.log('El componente login.component ha sido cargado');
- console.log(JSON.parse(localStorage.getItem('identity')));
- this.logout();
- this.redirectIfIdentity();
- }
- onSubmit(){
- console.log(this.user);
- this._userService.signup(this.user).subscribe(
- response => {
- this.identity = response;
- if(this.identity.length <= 1){
- console.log('Error en el servidor');
- }{
- if(!this.identity.status){
- localStorage.setItem('identity', JSON.stringify(this.identity));
- //get token
- this.user.getHash=null;
- this._userService.signup(this.user).subscribe(
- response => {
- this.token = response;
- if(this.identity.length <= 1){
- console.log('Error en el servidor');
- }{
- if(this.identity.status){
- localStorage.setItem('token', JSON.stringify(this.identity));
- //window.location.href= "/";
- }
- }
- },
- error => {
- console.log(<any>error)
- }
- );
- }
- }
- },
- error => {
- console.log(<any>error)
- }
- );
- }
- import { Injectable } from '@angular/core';
- import { Http, Response, Headers } from '@angular/http';
- import "rxjs/add/operator/map";
- import { Observable } from 'rxjs/Observable';
- import { GLOBAL } from './global';
- @Injectable()
- export class UserService{
- public url: string;
- public identity;
- public token;
- constructor(private _http: Http){
- this.url = GLOBAL.url;
- }
- signup(user_to_login){
- let json = JSON.stringify(user_to_login);
- let params = "json="+json;
- let headers = new Headers({'Content-Type':'application/x-www-form-urlencoded'});
- return this._http.post(this.url+'/login', params, {headers: headers})
- .map(res => res.json());
- }
- <div class="col-md-12">
- <h3>{{title}}</h3>
- <div class="identity_alert alert alert-success" *ngIf= "identity && identity.sub">
- Te has logueado correctamente Bienvenido {{identity.email}}
- </div>
- <div class="identity_alert alert alert-danger" *ngIf= "identity && identity.data">
- No te has logueado correctamente
- </div>
- <form #loginForm="ngForm" (ngSubmit)="onSubmit()" class = "col-md-7 no-padding">
- <p>
- <label>Email:</label>
- <input type="email" class="form-control" name="email" #email="ngModel" [(ngModel)]="user.email" required/>
- <span *ngIf="!email.valid && email.touched">El email no es válido</span>
- </p>
- <p>
- <label>Contraseña:</label>
- <input type="password" class="form-control" name="password" #password="ngModel" [(ngModel)]="user.password"
- required/>
- <span *ngIf="!password.valid && password.touched">La contraseña no es válida</span>
- </p>
- <input type="submit" value="Entrar" class="btn btn-primary"[disabled]="!loginForm.form.valid"/>
- </form>
- </div>
Add Comment
Please, Sign In to add comment