Предоставлено
Райаном Уивером
в # 250.

Готовы запустить вашу систему безопасности? Для начала нужен пользователь. В MakerBundle 1.7 это можно сделать за вас:

$ php bin/console make:entity

The name of the security user class (e.g. User) [User]:
> User

Do you want to store user data in the database (via Doctrine)? (yes/no) [yes]:
> yes

Enter a property name that will be the unique "display" name for the user
(e.g. email, username, uuid) [email]:
> email

Will this app need to hash/check user passwords? Choose No if passwords
are not needed or will be checked/hashed by me other system (e.g. a single sign-on server).
Does this app need to hash/check user passwords? (yes/no) [yes]:
> yes

created: src/Entity/User.php
created: src/Repository/UserRepository.php
updated: src/Entity/User.php
updated: config/packages/security.yaml

Вот и все! В зависимости от ваших ответов команда создаст класс / объект пользователя и обновит ваш security.yaml файл, чтобы настроить безопасный кодировщик паролей (при необходимости) и провайдера пользователя. Сгенерированный код имеет четкие комментарии, поэтому вы можете продолжать обновлять все в соответствии с вашими потребностями.

сделать: auth

Предоставлено
Николя Филиппом
в # 266.

Теперь, когда у вас есть класс User, пришло время разрешить пользователям входить в систему. Хотите получить полную систему входа в систему с помощью одной команды? В MakerBundle 1.8 это не проблема:

$ php bin/console make:auth

What style of authentication do you want? [Empty authenticator]:
[0] Empty authenticator
[1] Login form authenticator
> 1

The class name of the authenticator to create (e.g. AppCustomAuthenticator):
> LoginFormAuthenticator

Choose a name for the controller class (e.g. SecurityController) [SecurityController]:

created: src/Security/LoginFormAuthenticator.php
updated: config/packages/security.yaml
created: src/Controller/SecurityController.php
created: templates/security/login.html.twig

Это создает маршрут входа, контроллер и шаблон как хорошо в качестве аутентификатора Guard, который обрабатывает отправку входа в систему, включает защиту CSRF и интеллектуально перенаправляет в случае успеха или ошибки. В вашем классе аутентификатора будет несколько второстепенных TODO (обычно всего 1), которые вам нужно будет завершить. Но вам не нужно изменять какие-либо файлы конфигурации.

Результат? Полнофункциональная система входа за считанные минуты, над которой вы полностью контролируете. Настройте шаблон в соответствии с вашим внешним видом и обновите код в вашем аутентификаторе, чтобы добавить что-нибудь особенное, что вам нужно во время процесса входа в систему.

Вы также можете сгенерировать «пустой» аутентификатор, чтобы использовать его для любой другой аутентификации, которая вам нужна. Нужна поддержка для создания других типов аутентификаторов? Просто откройте запрос на перенос!

Удачной безопасности!