我使用hautelook/alice捆绑包。
由于以下错误($in被解释为对对象的引用),我无法在我的fixture中使用编码的bcrypt密码:
在SimpleObjectGenerator.php中,第114行:
生成固定装置"培训生"(App\Document\培训生)时出错:在生成过程中无法解析值。
AppDocumentTrainee:
# template
trainee (template):
firstName: <fr_FR:firstName()>
lastName: <fr_FR:lastName()>
email (unique): <fr_FR:email()>
password : $2y$13$I5uLW8atzRPmC3NcvirYqO2htdMHH1l4uFQ3z0V8wHowO0FqTXl7u
plainPassword: password
birthdate: <date('now')>
address: '@address_tr_*'
phoneNumber: <fr_FR:phoneNumber()>
profileCompleted: false
你知道为什么吗?感谢
您可以将散列密码放入参数中,如下所示:
parameters:
hash: $2y$13$I5uLW8atzRPmC3NcvirYqO2htdMHH1l4uFQ3z0V8wHowO0FqTXl7u
AppDocumentTrainee:
trainee (template):
password: <{hash}>
...
您必须使用$
简单地转义每个$
例如:
AppDocumentTrainee:
trainee (template):
[...]
password: '$2y$13$I5uLW8atzRPmC3NcvirYqO2htdMHH1l4uFQ3z0V8wHowO0FqTXl7u'
我建议您在测试环境中简单地设置一个明文编码器,并在您的fixture中设置明文密码。
首先,切换到test
环境中的明文密码编码器:
# config/packages/test/security.yaml
security:
encoders:
AppEntityUser:
algorithm: plaintext
然后在你的固定装置中:
AppEntityUser:
user1:
username: user1@example.com
password: 'password'
您现在可以在测试中使用明文密码:
public function testLoginWithUsernameAndPassword()
{
$response = static::createHttpClient()->request('POST', '/api/login', ['json' => [
'username' => 'user1@example.com',
'password' => 'password'
]]);
// assert $response
}