我正在尝试在 CakePHP 中使用 AuthComponent 的默认行为,但是当我尝试在操作中使用该方法时,我得到了一个奇怪$this->Auth->redirect()
的行为login
。
我想将登录的用户重定向到view
他之前被重定向的位置,例如CakePHP 登录重定向到请求的 URL文章。我也读过CakePHP 1.3
身份验证,但不明白我错在哪里。
这是我的代码:
应用控制器
public $components = array(
'Session',
'Auth' => array(
'logoutRedirect' => array('controller' => 'users', 'action' => 'login'),
'authError' => 'Error message',
'authorize' => array(
'Controller',
'Actions' => array(
'actionPath' => 'controllers'
)
),
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email')
)
)
)
);
用户控制器
public function login () {
if ($this->request->is ('post')){
if ($this->Auth->login()) {
$auth_user = $this->Auth->user();
$this->User->id = $auth_user['id'];
$this->User->saveField('last_login', date('Y-m-d H:i:s'));
$this->Session->write('flash_element','done');
$this->Session->setFlash('Welcome back <b>'.$auth_user['username'].'</b>!');
$this->redirect ($this->Auth->redirect());
} else {
$this->set('flash_element','warning');
$this->Session->setFlash('Wrong login');
}
}
}
此设置将我重定向到如果http://site.com/users/img/favicon.png
我得到完全字符串。debug
$this->Auth->redirect()
/users/img/favicon.png
我试图在default.ctp
布局文件中注释一行,在它之后everything works perfect
,为什么?
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<title><?php echo $title_for_layout; ?></title>
<meta name="HandheldFriendly" content="True">
<meta name="MobileOptimized" content="320">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<?php
echo $this->Html->css('style.css');
//echo $this->Html->meta('icon','img/favicon.png');
...
我不明白为什么这条线会破坏我的AuthComponent
,是网站图标代码错误吗?
应用程序的其余部分与所有模型、视图和控制器完美配合。