【发布时间】:2014-01-30 21:03:29
【问题描述】:
所以,我已经在我的 di 中设置了安全组件……
--services.php--
$di->set('security', function(){
$security = new Phalcon\Security();
//Set the password hashing factor to 11 rounds
$security->setWorkFactor(11);
return $security;
}, true);
--Custom Auth Library (auth.php)--
$user = Users::findFirstByEmail($login);
if ($user) {
if ($this->security->checkHash($password, $user->password)) {
return true;
}
}
return false;
但是,由于某种原因,这总是返回 false...所以,为了调试,我尝试使用 PHP 的 password_verify 函数,以下代码直接在我的视图中:
//Returns false
var_dump($this->security->checkHash('password', '$2a$12$aSa7zLEd24zjh2aoUasxd.hbxIm8IQ0/vMf/8p4LTYI3VtZMJ62Pe'));
//Returns True
var_dump(password_verify('password', '$2a$12$aSa7zLEd24zjh2aoUasxd.hbxIm8IQ0/vMf/8p4LTYI3VtZMJ62Pe'));
我错过了什么???
【问题讨论】:
-
如果我没有提供足够的信息,请告诉我。
-
仅供参考:您不需要
echo var_dump。var_dump不返回任何内容,它会打印到屏幕上。 -
我意识到了这一点,但是我已经在控制器和模型中输入了 var_dump 来调试它,并且已经有一条回显线......它适得其反,但对于调试来说,它没有害处.至少,我认为不会,但很好。
-
没什么坏处,只是想指出来:)
-
@JustinE 作为健全性检查,您可以尝试运行this script。如果从中得到两个真值,则问题可能是由代码中的其他内容引起的。