Пакет Алисы - как использовать закодированный пароль в приспособлении yml

Я использую 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

У вас есть идея, почему? Спасибо

Я не использую FOSUserBundle

tux23 02.02.2019 09:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
1
2 034
3

Ответы 3

Вы можете указать хешированный пароль в параметрах, например:

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
}

Другие вопросы по теме