Информация для входа, используя symfony и провайдера - PullRequest
0 голосов
/ 29 октября 2018

Я бы хотел понять, как безопасность работает с провайдерами пользователей. В security.yaml я могу написать:

   providers:
       entity_provider:
           entity:
               class: App\Entity\User
               property: userLogin
...
   firewalls:
...
           json_login:
               username_path: userLogin

И, таким образом, определите «userLogin» как правильное поле для использования в качестве «имени пользователя» для аутентификации. Это верно? Тогда почему кажется, что мой класс User должен реализовывать Symfony\Component\Security\Core\User\UserInterface::getUsername()? Что должно произойти, если эти функции возвращают что-то отличное от conf? В каких случаях будет использоваться один, а не другие?

1 Ответ

0 голосов
/ 29 октября 2018

Метод Symfony\Component\Security\Core\User\UserInterface::getUsername() используется в Symfony для проверки, какое свойство используется в качестве идентификатора, оно используется в аутентификаторе, брандмауэре ... Он будет использоваться всеми методами аутентификации. В вашем случае вы должны написать

/**
 * @return string
 */
public function getUsername(): ?string
{
    return $this->userLogin;
}

Свойство в файле conf будет просматриваться при отправке формы входа на обычной веб-странице. Это избыточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...