
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*
*ESTA ES MI VISTA*
Bueno estare atento.
*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


0