使用symfony和用户提供程序的登录信息

时间:2018-10-29 15:32:03

标签: symfony4

我想了解安全性如何与用户提供程序一起使用。在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 :(得分:1)

该方法: Equatable用于symfony中,以检查wich属性是否用作标识符,它在身份验证器,防火墙中使用...它将由所有身份验证方法使用。您应该写

Symfony\Component\Security\Core\User\UserInterface::getUsername()

当您在常规网页上提交登录表单时,将查看conf文件中的属性。是多余的。