我正在尝试使用以下教程将auth添加到我的cakephp应用中:http://www.endyourif.com/login-system-with-cakephp-in-under-10-minutes/
我已经从教程中略微更改了代码,因为我的用户表中有'username'和'password'列而不是'email'
这是一个控制面板,所以整个事情需要密码,不需要每个控制器访问等。
当我使用表单登录时,它会给我“登录失败。用户名或密码无效。”来自$ session-> flash('auth'); - 这是否意味着它的工作,但它只是找不到用户表行?
我试图在数据库中对密码进行哈希处理,以防它与它们不匹配。
这是我的app控制器:
<?php
class AppController extends Controller {
var $helpers = array('Html', 'Javascript', 'Form', 'Session', 'AutoJavascript', 'Cache');
var $components = array('Session', 'Auth', 'Cookie'); // Adding an email class conflicts with the email controller
function beforeFilter() {
$this->Auth->userModel = 'User';
$this->Auth->loginAction = array('admin' => false, 'controller' => 'users', 'action' => 'login');
$this->Auth->loginRedirect = array('controller' => 'users', 'action' => 'index');
$this->Auth->allow('*');
}
}
?>
教程中有什么问题吗?
抱歉,没有可用的演示。
谢谢!
答案 0 :(得分:1)
正如其他人所说,直接在数据库中输入密码并不是一个好主意。原因是当你使用Auth组件时,它会使用config.php中的Salt来密码密码,当你从phpmyadmin创建记录时,你显然不包括这些密码。
只需转到并烘焙用户表模型,控制器和视图。然后第一次禁用安全性并创建第一个用户。然后强制进行身份验证并尝试登录。我相信这会成功。
另请注意,将用户移至其他服务器时,例如您进行迁移需要保留旧的Salt字符串,否则用户将无法登录新网站。
答案 1 :(得分:0)
检查密码的实际数据库值,确保密码正确哈希。
此外,您可能需要仔细检查是否在登录方法中传递了正确的数据,执行var_dump($this->data);
以仔细检查所有内容是否正常