Symfony FOSUserBundle Как сделать регистрацию пользователя
Primary tabs
Чтобы создать простейшый модуль регистрации пользователя в Symfony, достаточно следовать инструкциям официальной документации по FOSuserBundle.
(Я использую БД PostgreSQL и Doctrine ORM)
- Класс User выглядит очень просто. Все необходимые поля уже описаны в базовом классе, который должен обяательно расширять Ваш класс. Только если Вы хотите добавить нестандартные поля (например, фамилия или паспортные данные), следует создавать эти поля в классе User.
<?php // src/AppBundle/Entity/User.php namespace AppBundle\Entity; use FOS\UserBundle\Model\User as BaseUser; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="fos_user") */ class User extends BaseUser { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; public function __construct() { parent::__construct(); // Здесь Вы можете дополнить код своими инструкциями. Если таковые отсутствуют, метод конструктора можно опустить, он автоматически унаследуется от родителя } /** * @return int */ public function getId(): int { return $this->id; } }
- Также потребуется настроить некоторые конфигурации
У меня возникли некоторые расхождения с документацией только в части security.yml:
security: firewalls: main: csrf_token_generator: security.csrf.token_manager
строка
csrf_provider: security.csrf.token_manager
была заменена на
csrf_token_generator: security.csrf.token_manager
а также в config.yml изменена строка csrf_protection:
framework: csrf_protection: true
- Создаём таблицу fos_user в БД(команда для doctrine):
php bin/console doctrine:schema:update --force
- Макет готов!
Страница авторизации: http://app.com/login
Страница регистрации: http://app.com/register - Вы также можете внести изменения в систему регистрации посредством переопределения стандартных классов.
Источники
Официальная документация Symfony
https://blog-tree.com/post/2014/06/symfo...
Пример на github
- Log in to post comments
- 4406 reads