Zend 2 Auth与Bcrypt?

Rae*_*kye 4 bcrypt zend-auth zend-framework2

谷歌没有太多的解决方案(类似的问题,但没有答案).

由于bcrypt每次都会生成一个新哈希,因此身份验证失败.我查看了代码(也许是自己扩展类),但它非常混乱(更喜欢本机解决方案).我该怎么$bcrpt->verify()$identity->isValid()

编辑:目前,我已经将认证DbTable类子类化,并且它正在运行,但我非常怀疑它是否已经过优化/"完全正确".仍在寻找"优雅"的解决方案.

B.A*_*lin 15

您可以使用:

Zend\Authentication\Adapter\DbTable\CallbackCheckAdapter
Run Code Online (Sandbox Code Playgroud)

像这样 :

use Zend\Authentication\Adapter\DbTable\CallbackCheckAdapter as AuthAdapter;
use Zend\Crypt\Password\Bcrypt;    

$credentialValidationCallback = function($dbCredential, $requestCredential) {
    return (new Bcrypt())->verify($requestCredential, $dbCredential);
};
$authAdapter = new AuthAdapter($dbAdapter, 'user', 'login', 'password', $credentialValidationCallback);
// ...
Run Code Online (Sandbox Code Playgroud)