0

这是一种自定义authErrorURL的方法CakePHP吗?如果我查看我放入的Auth组件,AppController我有一个重定向操作loginRedirectlogoutRedirect但我不知道是否可以设置如下内容authErrorRedirect

<?php
class AppController extends Controller {

    public $components = array(
        'Session',
        'Auth' => array(
            'loginRedirect' => array('controller' => 'users', 'action' => 'index'),
            'logoutRedirect' => array('controller' => 'users', 'action' => 'index'),
            'authError' => 'You don\'t have the right to go there.',
            // something like this
            'authErrorRedirect' => array('controller' => 'users', 'action' => 'login'),
            'authorize' => array(
                'Controller',
                'Actions' => array(
                    'actionPath' => 'controllers'
                )
            ),
            'authenticate' => array(
                'Form' => array(
                    'fields' => array('username' => 'email')
                )
            )
        ),
        'Acl'
    );

我可以设置 authError 重定向操作吗?

4

1 回答 1

0

不可以。如果您遵循简单的身份验证和授权应用程序示例@CakePHP Cookbook v2.x 文档,您应该在登录操作中重定向,因为“无效的用户名或密码...”登录失败。仅当您想重定向不同的操作时,这些才有意义,在以下示例 login2 中

public function login() {
    if ($this->request->is('post')) {
        if ($this->Auth->login()) {
            $this->redirect($this->Auth->redirect());
        } else {
            $this->Session->setFlash(__('Invalid username or password, try again'));
            $this->redirect(array('controller' => 'users', 'action' => 'login2'));
        }
    }
}
于 2012-09-07T10:02:23.430 回答