Alicebundle-如何在yml fixture中使用编码密码



我使用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
}

相关内容

  • 没有找到相关文章

最新更新