0

我在蛋糕中的身份验证组件重定向错误。正确的道路应该是:

localhost/tlfmovil/usuarios/index

但它重定向到

http://localhost/tlfmovil/tlfmovil/usuarios

如果停用身份验证组件(没有登录,所有访问我的网站)我的网站工作正常

这是我的应用控制器

<?php
App::uses('Controller', 'Controller');

class AppController extends Controller {
    public $components = array(
        'Session',
        'Auth' => array(
            /*'authorize' => array(
                'Actions' => array('actionPath' => 'controllers')
            ),*/
            'authenticate' => array(
                'Form' => array(
                    'userModel' => 'Usuario',
                    'fields' => array(
                        'username' => 'email',
                        'password' => 'password'
                    )
                )
            ),
            'authorize' => array('Controller')
        ),

    );

    public function beforeFilter() {
        $this->Auth->loginAction = array('controller' => 'usuarios', 'action' => 'login');
        //$this->Auth->logoutRedirect = array('controller' => 'usuarios', 'action' => 'login');
        $this->Auth->loginRedirect = array('controller' => 'usuarios', 'action' => 'add');
        $this->Auth->authError = 'No Posee Permisos para Acceder a esta Sección';
        $this->set('logueado',$this->Auth->loggedIn()); ####Verifica si el usuario esta logueado 
        $this->set('usuarioActual',$this->Auth->user()); #####Manda la informacion del usuario logueado
        //$this->Auth->allow();
    }

    public function isAuthorized($user) {
        if ($user['grupo_id'] == '3'/* Administrador*/ || $user['grupo_id'] =='2' /*Usuario*/){
            return true;
        }

        return false;
    }
}

usuariosController

<?php
class UsuariosController extends AppController{
    var $name = 'Usuarios';
    var $helpers = array('Html','Form');
    //var $scaffold;
...
public function login() {
        if ($this->request->is('post')){     
            if ($this->Auth->login()){
                //Configure::write('Session.timeout','30');
                return $this->redirect($this->Auth->redirect());
            } else {
                $this->Session->setFlash(__('Usuario o Contraseña Incorrecto'));
            }
        }
    }

    public function logout() {
        $this->redirect($this->Auth->logout());
    }


}    

?>

登录.ctp

   <?php
    echo $this->Session->flash('auth');
    echo $this->Form->create('Usuario', array('action' => 'login'));
    echo $this->Form->input('email',array('label' => 'Correo Electrónico'));
    echo $this->Form->input('password',array('label' => 'Contraseña'));
    echo $this->Form->end('Ingresar');

?>
4

1 回答 1

2

首先 $this->Auth->redirect() 在 CakePHP 2.3 中被弃用了。由于您使用的是 CakePHP 2.3,您应该改用 $this->Auth->redirectUrl()。

其次,redirect()/redirectUrl() 将获取重定向到登录页面的 URL。如果它与登录页面相同,那么它将使用 loginRedirect。

如果您总是想重定向到 localhost/tlfmovil/usuarios/index 页面,请像这样使用。

    public function login() {
        if ($this->request->is('post')){     
            if ($this->Auth->login()){
                $this->redirect(array('controller'=>'usuarios','action'=>'index'));
            } else {
                $this->Session->setFlash(__('Usuario o Contraseña Incorrecto'));
            }
        }
    }
于 2013-10-03T12:12:48.840 回答