Я хотел бы создать свой собственный набор для входа в symfony 2.5. Я не хочу использовать FOSUserBundle, потому что мой набор для входа будет работать с другой логикой. Моя логика:Symfony: вход в систему без имени пользователя (ограничения интерфейса)?
- Пользователь может иметь несколько электронных писем, но только на первичных электронных письмах. Электронные письма будут перечислены в другом объекте (UserEmail). Внешний ключ будет ссылаться на идентификатор первичной электронной почты
- Пользователь должен не иметь имя пользователя или что-то еще, чтобы войти в систему, он может просто использовать адрес электронной почты тех, кто ссылается на свою учетную запись (в UserEmail)
- Другой объект, называемый UserRole, будет иметь внешний ключ для UserEntity с его ролью.
Я уже создал все свои сущности: User, UserEmail и UserRole. Поэтому я пытаюсь реализовать свой SecurityController. Но, к сожалению, есть некоторые ограничения, которые я нашел в документации:
Для того, чтобы использовать экземпляр AcmeUserBundle: класс пользователя в слое безопасности Symfony, класс сущности должен реализовывать пользовательского интерфейса. Этот интерфейс вынуждает класс реализовать пять следующие методы
getRoles()
getPassword()
getSalt()
getUsername()
eraseCredential()
Таким образом, мой логин не будет включать в себя пункт 4 getUsername()
, потому что у пользователя не будет имени пользователя.
Как я могу реализовать свой логин пользователя без имени пользователя?
Не можете использовать электронную почту в качестве имени пользователя? –
Я не думаю, что это хорошая идея. это совершенно путано назвать его имя пользователя в исходном коде, но означает электронную почту. – user3631654
Но вы сказали, что у вас нет имени пользователя. –