Я использую hautelook/alice-bundle.
Я не могу использовать закодированный пароль bcrypt в своем приспособлении из-за следующей ошибки ($ интерпретируется как ссылка на объект):
В строке SimpleObjectGenerator.php 114:
Произошла ошибка при создании приспособления «обучаемый» (App\Document\Trainee): не удалось разрешить значение в процессе создания.
App\Document\Trainee:
# 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
App\Document\Trainee:
trainee (template):
password: <{hash}>
...
Вы должны просто экранировать каждый $ с помощью \$.
для вашего примера:
App\Document\Trainee:
trainee (template):
[...]
password: '\$2y\$13\$I5uLW8atzRPmC3NcvirYqO2htdMHH1l4uFQ3z0V8wHowO0FqTXl7u'
Я предлагаю вам просто установить кодировщик открытого текста в тестовой среде и установить пароли открытым текстом в ваших приборах.
Во-первых, переключитесь на кодировщик открытого текста в среде test:
# config/packages/test/security.yaml
security:
encoders:
App\Entity\User:
algorithm: plaintext
Затем в вашем приспособлении:
App\Entity\User:
user1:
username: [email protected]
password: 'password'
Теперь вы можете использовать открытый текстовый пароль в своих тестах:
public function testLoginWithUsernameAndPassword()
{
$response = static::createHttpClient()->request('POST', '/api/login', ['json' => [
'username' => '[email protected]',
'password' => 'password'
]]);
// assert $response
}
Я не использую FOSUserBundle