首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cakephp登录页面不会去任何地方

cakephp登录页面不会去任何地方
EN

Stack Overflow用户
提问于 2012-02-14 03:37:19
回答 2查看 1.6K关注 0票数 0

我曾尝试设置一个登录页面,但当我尝试登录时,即使使用了错误的用户名/密码,蛋糕也会重定向到登录页面(注销功能会正确地重定向)。即使我插入了错误的信息,我也没有得到任何错误的闪烁,我没有得到它。下面是我的控制器代码:

代码语言:javascript
复制
class UsersController extends AppController {
public $name='Users';
public $layout='pagelayout';
public $uses=array('User');



public function beforeFilter() {
    parent::beforeFilter();
    $this->Auth->allow('add', 'logout', 'overview');
}

public function login() {
$this->set('title', 'Log in to your Gulf Shores 4 Less account');
if ($this->request->is('post')) {
    if ($this->Auth->login()) {
        return $this->redirect($this->Auth->redirect());
    } else {
        $this->Session->setFlash(__('Username or password is incorrect'), 'default', array(), 'auth');
    }
}

}

这是我的模型:

代码语言:javascript
复制
<?php
App::uses('AuthComponent', 'Controller/Component');
class User extends AppModel {
public $name='User';
public $hasMany=array('Unit', 'Complex', 'Coupon', 'Location', 'Image', 'Charter', 'Course', 'Nightclub', 'Store');

public function beforeSave() {
if (isset($this->data[$this->alias]['password'])) {
    $this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
}
return true;
}
public $validate = array(
    'username' => array(
        'required' => array(
            'rule' => array('notEmpty'),
            'message' => 'A username is required'
        )
    ),
    'password' => array(
        'required' => array(
            'rule' => array('notEmpty'),
            'message' => 'A password is required'
        )
    ),
    'role' => array(
        'valid' => array(
            'rule' => array('inList', array('admin', 'advertiser')),
            'message' => 'Please enter a valid role',
            'allowEmpty' => false
        )
    )
  );
}

?>

以下是来自AppController的代码:

代码语言:javascript
复制
<?php
class AppController extends Controller {
 public $components = array(
    'Session',
    'Auth' => array(
        'loginRedirect' => array('controller' => 'users', 'action' => 'overview'),
        'logoutRedirect' => array('controller' => 'pages', 'action' => 'index')
    )
);


function beforeFilter() {
    $this->Auth->allow('login','index', 'view', 'condos', 'houses', 'hotels_and_motels', 'print_all_coupons', 'print_coupon', 'search', 'golf', 'charters', 'events', 'nightlife', 'shopping', 'visitors_info', 'contact_us');
}
}
?>

下面是视图代码:

代码语言:javascript
复制
<div class="users form">
<?php echo $this->Session->flash('auth'); ?>
<?php echo $this->Form->create('User');?>
<fieldset>
    <legend><?php echo __('Please enter your username and password'); ?></legend>
<?php
    echo $this->Form->input('username');
    echo $this->Form->input('password');
?>
</fieldset>
<?php echo $this->Form->end(__('Login'));?>
</div>

正如您所看到的,我几乎复制并粘贴了Cakephp-2.0手册中的内容。我的db表与手册中的唯一不同之处在于,我的密码以MD5散列的形式存储在我的users表中。我不知道这出了什么问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-14 03:59:31

确保您的密码是使用Auth组件散列存储的。AFAIK,不支持‘纯’md5密码。Cake生成的散列比md5更复杂。

有关如何对密码进行哈希处理的信息,请参阅documentation。如果你是从一个使用md5散列的应用程序迁移过来的,你必须将所有用户的所有密码都随机重置为某个值。

票数 1
EN

Stack Overflow用户

发布于 2012-02-14 16:33:11

您可以尝试在AppController.php文件上使用以下代码

AppController.php

代码语言:javascript
复制
$this->Auth->authenticate = array(
            AuthComponent::ALL => array('userModel' => 'User'),
            'Form' => array(
                'fields' => array('username' => 'email')
            )
        );
        $this->Auth->authorize =false;
        $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
        $this->Auth->fields = array('username' => 'email', 'password' => 'password');
        $this->Auth->loginRedirect = array('controller' => 'media', 'action' => 'index/');
        $this->Auth->logoutRedirect = '/logout';
        $this->Auth->loginError = 'Invalid e-mail / password combination. Please try again';
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9266833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档