PHP - Autenticacion de usuario traido los datos de un array de web services

 
Vista:
Imágen de perfil de Sebastian

Autenticacion de usuario traido los datos de un array de web services

Publicado por Sebastian (1 intervención) el 09/11/2016 14:44:57
Bueno tengo un incoveniento estoy trabajando en cakephp y estoy haciendo las sesiones pero no traigo los usuarios desde la base de datos sino de un web services con otra aplicacion y la variable que trae los datos la invoco igual en el controlador, mi codigo es este.




*Controlador Usuarios*

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
namespace App\Controller;
 
use App\Controller\AppController;
 
/**
 * Cargos Controller
 *
 * @property \App\Model\Table\CargosTable $Cargos
 */
 $rest = file_get_contents('http://localhost/Saf/rest_usuarios/getbyusuario/.json'); /* variable que me trae los datos del web services */
 $usuario =json_decode($rest, true);
 
  //debug($usuario['Usuarioarea'][3]['Usuario']);
class UsuariosController extends AppController
{
 
public function login()
{
    if($this->request->is('post'))
    {
        $usuario = $this->Auth->identify();
        if($usuario)
        {
            $this->Auth->setUser($usuario);
            return $this->redirect($this->Auth->redirectUrl());
        } else
         {
            $this->Flash->error('Datos invalidos, por favor intente nuevamente!',['key'=>'auth']);
 
        }
    }
}
 
public function logout()
{
    return $this->redirect($this->Auth->logout());
}
 
 
public function home()
{
    $this->render();
}
?>
 
/*Controlador AppController */
 
class AppController extends Controller
{
 
 
    public function initialize()
    {
        parent::initialize();
 
        $this->loadComponent('RequestHandler');
        $this->loadComponent('Flash');
        $this->loadComponent('Auth',[
           'authorize'=>['Controller'],
           'authenticate' =>[
               'Form'=>[
                   'fields' => [
                       'correo' => 'correo',
                       'clave' => 'clave'
                   ]
               ]
           ],
            'loginAction' => [
                'controller' => 'Usuarios',
                'action' => 'login'
            ],
            'authError' => 'Su correo o clave son incorrectas, por favor intente de nuevo',
            'loginRedirect' => [
                'controller' => 'Usuarios',
                'action' => 'home'
            ],
            'logoutRedirect' => [
                'controller' => 'Usuarios',
                'action' => 'login'
            ]
        ]);
    }
 
    /**
     * Before render callback.
     *
     * @param \Cake\Event\Event $event The beforeRender event.
     * @return void
     */
    public function beforeRender(Event $event)
    {
        if (!array_key_exists('_serialize', $this->viewVars) &&
            in_array($this->response->type(), ['application/json', 'application/xml'])
        ) {
            $this->set('_serialize', true);
        }
    }
 
    public function isAuthorized($usuario)
    {
        return true;
    }
}


*ESTA ES MI VISTA*

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<!DOCTYPE html>
<html>
<head>
    <?= $this->Html->charset() ?>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>
        <?= $cakeDescription ?>
    </title>
    <?= $this->Html->meta('icon') ?>
    <?= $this->Html->css ('login.css') ?>
    <?= $this->Html->css ('font-awesome2.min.css') ?>
</head>
<body>
 
<?= $this->Flash->render('auth') ?>
 <div class="container">
  <div class="card"></div>
 <?= $this->Form->create() ?>
  <div class="card">
    <h1 class="title">Login</h1>
      <div class="input-container">
        <input type="email" name ="correo" id="Username" autocomplete="off" required="required"/>
        <label for="Username">Correo</label>
        <div class="bar"></div>
      </div>
      <div class="input-container">
        <input type="password" name="password" id="Password" required="required"/>
        <label for="Password">Contraseña</label>
        <div class="bar"></div>
      </div>
      <div class="button-container">
        <button><span>Go</span></button>
      </div>
      <div class="footer"><a href="#">olvido su contraseña?</a></div>
   <?= $this->Form->end()?>
  </div>
  <div class="card alt">
      <div class="toggle"></div>
    <h1 class="title">Registrar
      <div class="close"></div>
    </h1>
    <form>
      <div class="input-container">
        <input type="email" id="Username" autocomplete="off" required="required"/>
        <label for="Username">Correo</label>
        <div class="bar"></div>
      </div>
      <div class="input-container">
        <input type="password" id="Password" autocomplete="off" required="required"/>
        <label for="Password">Contraseña</label>
        <div class="bar"></div>
      </div>
      <div class="input-container">
        <input type="password" id="Repeat Password" autocomplete="off" required="required"/>
        <label for="Repeat Password">Repite la contraseña</label>
        <div class="bar"></div>
      </div>
      <div class="button-container">
        <button><span>Siguiente</span></button>
      </div>
    </form>
  </div>
</div>
 
 
 
</body>
    <?= $this->Html->script('jquery.min.js'); ?>
    <?= $this->Html->script('index.js'); ?>
</html>


Bueno estare atento.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder