我的auth组件在蛋糕中重定向错误。正确的道路应该是:
localhost/tlfmovil/usuarios/index
但它重定向到
http://localhost/tlfmovil/tlfmovil/usuarios
如果停用auth组件(没有登录,对我的网站的所有访问权限)我的网站工作正常
这是我的appcontroller
<?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());
}
}
?>
login.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');
?>
答案 0 :(得分:2)
首先,$ this-&gt; Auth-&gt; redirect()在CakePHP 2.3中不推荐使用。由于您使用的是CakePHP 2.3,因此您应该使用$ this-&gt; Auth-&gt; 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'));
}
}
}