CakePHP $this-> Auth-> login()无效
发布时间:2020-12-13 21:44:38 所属栏目:PHP教程 来源:网络整理
导读:除了auth手动调用之外,Web应用程序运行良好.几天来我一直在努力奋斗.在我的示例代码中,我暂时重写了cookie以缩小原因.这是我的app控制器剪辑: App::import('Sanitize');//uses('sanitize');class AppController extends Controller { var $components = arr
除了auth手动调用之外,Web应用程序运行良好.几天来我一直在努力奋斗.在我的示例代码中,我暂时重写了cookie以缩小原因.这是我的app控制器剪辑:
App::import('Sanitize'); //uses('sanitize'); class AppController extends Controller { var $components = array('Clean','Acl','Auth','Session','RequestHandler','Cookie',/* 'DebugKit.Toolbar' */); var $helpers = array('uiNav','Flash','Html','Form','Javascript','Ajax','Js' => array('Jquery'),'Time','Js'); function beforeFilter() { //Configure AuthComponent $this->Auth->authorize = 'actions'; $this->Auth->loginAction = array('controller' => 'users','action' => 'login'); $this->Auth->logoutRedirect = array('controller' => 'users','action' => 'login'); $this->Auth->loginRedirect = array('controller' => 'users','action' => 'view'); $this->Auth->actionPath = 'controllers/'; $this->Auth->autoRedirect = false; $this->Auth->allowedActions = array('display'); if(!$this->Auth->user()){ //$cookie = $this->Cookie->read('Auth.User'); $cookie = array('username' => 'chris22','password' => 'stuff'); if (!is_null($cookie)) { $this->set('checking_cookie',$cookie); if ($this->Auth->login($cookie)) { $this->set('cookie_message','cookie validates!'); // Clear auth message,just in case we use it. $this->Session->delete('Message.auth'); /* $this->redirect($this->Auth->redirect()); */ } } } } } 正如您所看到的,我只是将用户名和密码插入$this-> Auth->登录,它无法正常工作! 我不知道我的用户控制器是否相关,但这里也是登录功能: function login() { if ($this->Auth->user()) { if (!empty($this->data) && $this->data['User']['remember_me'] && isset($this->data['User']['password'])) { $cookie = array(); $cookie['username'] = $this->data['User']['username']; $cookie['password'] = $this->data['User']['password']; $this->Cookie->write('Auth.User',$cookie,true,'+1 month'); //unset($this->data['User']['remember_me']); $this->set('cookie-00','setting cookie.'); }else{ $this->set('cookie_message','not setting cookie.');} $this->redirect($this->Auth->redirect()); } } 谢谢! 解决方法
编辑 – 1 – 我想我知道为什么这不适合你.
原因1:$this-> Auth-> login以数据的形式获取数据 array( 'User'=>array( 'username'=>'myusername','password'=>'mypassword' ) ) 原因2:$this-> Auth->登录不会对密码进行哈希处理. 您必须完全按照数据库中显示的密码发送密码. 在这种情况下,这条线路的所有可能性都不大可能: 您确定在最初创建用户名和密码时,是否设置了哈希值? >要检查哈希匹配,请使用phpmyadmin或mysql workbench查看users表,并找到用户chris22的密码字段 debug(Security::hash('stuff')); exit; 我希望这有帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |