CakePHP中的身份验证:不使用默认值;“用户”;桌子
我正在cakephp项目中实现身份验证。但是我不想使用默认的“users”表。我想使用“系统管理员”表。我在这里读了一篇教程: 这是我的控制器(SysemAdminController.php)CakePHP中的身份验证:不使用默认值;“用户”;桌子,cakephp,authentication,default,Cakephp,Authentication,Default,我正在cakephp项目中实现身份验证。但是我不想使用默认的“users”表。我想使用“系统管理员”表。我在这里读了一篇教程: 这是我的控制器(SysemAdminController.php) 但每当我想去 它总是将我重定向到并显示错误消息:“找不到UsersController。”您尚未定义默认登录页。默认情况下,用户模型为user,因此默认登录页面为/users/login 您需要定义: $this->Auth->loginAction='/system\u admins/login'
但每当我想去
它总是将我重定向到并显示错误消息:“找不到UsersController。”您尚未定义默认登录页。默认情况下,用户模型为
user
,因此默认登录页面为/users/login
您需要定义:
$this->Auth->loginAction='/system\u admins/login'代码>
并且可能允许未经身份验证的用户使用登录
页面:
$this->Auth->allow('login')代码>您尚未定义默认登录页面。默认情况下,用户模型为user
,因此默认登录页面为/users/login
您需要定义:
$this->Auth->loginAction='/system\u admins/login'代码>
并且可能允许未经身份验证的用户使用登录
页面:
$this->Auth->allow('login')代码>设置$this->Auth->loginDirect和$this->Auth->logoutRedirect()设置$this->Auth->loginDirect和$this->Auth->logoutRedirect()
<?php
App::uses('AppController', 'Controller');
class SystemAdminsController extends AppController {
// index, add, edit, delete actions
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->authenticate = array(
AuthComponent::ALL => array('userModel' => 'SystemAdmin'),
'Form',
'Basic'
);
}
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'));
}
}
}
}
<?php
App::uses('AppModel', 'Model');
App::uses('AuthComponent', 'Controller/Component');
// validates options
public function beforeSave($options = array()) {
if(isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
}
}
<div class="users form">
<?php echo $this->Session->flash('auth'); ?>
<?php echo $this->Form->create('SystemAdmin'); ?>
<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>