Autenticacion en cakephp 2.3.1

368 views
Skip to first unread message

Henrry Chy

unread,
May 19, 2013, 8:39:02 PM5/19/13
to cakep...@googlegroups.com
Buenas noches, aqui nuevamente por un problema, estoy trabajando con el componente auth y el problema que tengo es que a pesar de ingresar correctamente el id y la contraseña no quiere iniciar sesion, me sale mi mensaje que especifique que 'Usuario o Password incorrecto', busco, busco y no hay mucha información sobre este punto para esta version de cakephp que es el 2.3.1, me guio del cakebook 2.X y aun asi no me sale; mi modelo, mi controler y mi vista estan como siguen:
MODELO
<?php
class User extends AppModel
{
public $name = 'User';
public function beforeSave($options = array()){
                        if (isset($this->data['User']['password'])){
                         $this->data['User']['password'] = AuthComponent::password($this->data['User']['password']);
                 }
       return true;
         }
}
?>
CONTROLLER
        function login()
{
if ($this->request->is('post'))
{
                if ($this->Auth->login())
{
                        return $this->redirect($this->Auth->redirectUrl());
       }else
{
                        $this->Session->setFlash(__('Usuario o Password incorrecto'), 'default', array(), 'auth');
        }
    }
     }
VISTA
<?php
echo $this->Form->create('User', array('action' => 'login'));
        echo $this->form->input('username',array('label'=>'Usuario: '));
        echo $this->form->input('password',array('label'=>'Clave: '));
        echo $this->form->end('Ingresar');
        echo $this->session->flash('auth');
?>
Me podrían indicar en que estoy fallando o que estoy obviando para que no se pueda loguear un usuario ya registrado?, les agradecería vuestras respuestas.

Aland Laines

unread,
May 19, 2013, 11:12:09 PM5/19/13
to cakep...@googlegroups.com
Te falta configurar en el AppController, yo lo tengo así: http://bin.cakephp.org/saved/102608, tu debes revisar la doc, para que se acomode a tu aplicación.

Saludos!

Aland Laines Calonge
Twitter: @lainessolutions


--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP en Español" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a cakephp-esp...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a cakep...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/cakephp-esp?hl=es.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

Alvaro Ardila

unread,
May 21, 2013, 12:35:10 AM5/21/13
to cakep...@googlegroups.com
buenas noches yo tengo un problema al seguir el tutorial he llegado hasta la creación de los grupos me funciona genial pero ahora cuando quiero agregar los usuarios 

me sale este error:  AclNode::node() - Couldn't find Aro node identified by "Array ( [Aro0.model] => Usuario [Aro0.foreign_key] => 2 ) ";'

la tabla de usuarios se llama usuarios; ya he cambiado esto en appController porfa te pido ayuda esto error me trae loco

Henrry Chy

unread,
Jun 2, 2013, 6:17:32 PM6/2/13
to cakep...@googlegroups.com
Ola Aland Laines, pues ya verifique linea por linea de tu codigo y las mia, aumente algunas tuyas pero igual sigue, no quiere loguearse a persar que estoy ingresando correcto el id y el password; estoy poniendo dos comentarios con echo" " que me dicen si se pasa por ahi o no, estos dentro de la funcion login():
function login()
{
// debug($this->data);
$this->set('title_for_layout', 'Acceder al Sistema');
if ($this->request->is('post')){
        echo "paso el primer if de post";
                if ($this->Auth->login()){
           echo "paso el segundo if de auth login";}
         }
}
A parte también pongo al comienzo un debug para ver que se devuelve luego de hacer click en el botón, entonces lo que muestra es esto:
array(
	'password' => '*****',
	'username' => 'estoesunaprueba'
)
paso el primer if de post

Esto quiere decir que se esta ejecutando solamente el primer if mas no el segundo if en donde esta el autologueo propiamente dicho.

Por favor, necesito sus ayudas, a la espera de ello, buenas tardes

Aland Laines

unread,
Jun 2, 2013, 10:42:01 PM6/2/13
to cakep...@googlegroups.com
que version de cakephp estas ocupando?

Aland Laines Calonge
Twitter: @lainessolutions


--

Henrry Chy

unread,
Jun 3, 2013, 12:07:50 AM6/3/13
to cakep...@googlegroups.com
Es la que esta en el titulo del post, estoy con la versión de cakephp 2.3.1 y xampp 1.8.1, windows 8 de 64bits

Félix Galindo

unread,
Jul 12, 2014, 8:11:33 AM7/12/14
to cakep...@googlegroups.com
Tengo exactamente el mismo problema, alguna idea de como solucionarlo?

Aland Laines

unread,
Jul 12, 2014, 6:20:23 PM7/12/14
to cakep...@googlegroups.com
Hola felix puedes explicar tu caso y pasar algo de tu codigo de tu controlador y modelo de user?

Saludos,

 
 
programador de aplicativos web
Twitter: @lainessolutions
El 12 de julio de 2014, 7:11, Félix Galindo <galin...@gmail.com> escribió:
Tengo exactamente el mismo problema, alguna idea de como solucionarlo?
--
Has recibido este mensaje porque estás suscrito al grupo "CakePHP en Español" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a cakephp-esp...@googlegroups.com.

Para publicar una entrada en este grupo, envía un correo electrónico a cakep...@googlegroups.com.
Visita este grupo en http://groups.google.com/group/cakephp-esp.
Para obtener más opciones, visita https://groups.google.com/d/optout.

Félix Galindo

unread,
Jul 12, 2014, 7:33:00 PM7/12/14
to cakep...@googlegroups.com
Logre solucionar el problema, estaba en tu misma situacion.
Primero: modifique el core cambiando el valor de Security.Salt

Configure::write('Security.salt', 'sdafvs32e34gfsdfgsfd67533635234r3f');

Y modifique la funcion beforeFilter para encriptar la clave con md5

function beforeFilter() {
        Security::setHash('md5');
        $this->Auth->fields = array(
            'username' => 'username',
            'password' => 'password'
        );
        if($this->Auth->user('role')=='admin'){
            $this->Auth->allow('index','add','edit','delete','logout');
        }
        if($this->Auth->user('role')=='user'){
            $this->Auth->allow('edit','view','logout');
        }
    }
Por ultimo defini que actions puede realizar el usuario segun el role que tiene asignado en la base de datos. El problema radica en Security.Salt.
Reply all
Reply to author
Forward
0 new messages