验证其数据来自2个单独的表/实体的用户

时间:2013-04-16 19:41:51

标签: authentication symfony doctrine

以下是我的数据库架构:

  

用户

     
      
  • uid *
  •   
  • 用户名
  •   
     

user_auth

     
      
  • uid *
  •   
  • 密码
  •   

使用这种模式,我遇到了Symfony2 Authenticate的大问题。我在http://symfony.com/doc/current/cookbook/security/entity_provider.html阅读了这本食谱。但是我的项目的数据模型与教程完全不同。

如何从user_auth获取密码进行身份验证?

通常情况下,我会考虑使用JOIN查询获取这两个信息,然后将它们与用户的提交数据进行比较,但不能很好地理解Doctrine ORM模型会阻止我。

2 个答案:

答案 0 :(得分:0)

创建一个custom User Provider,您可以在其中放置自定义用户数据检索逻辑。请注意,您的User课程必须实施UserInterface界面。

答案 1 :(得分:0)

我找到了答案。使用CUSTOM USER PROVIDER

之后,我坚持使用Doctrine ORM来获取我的de-normlize架构。在通过更改我的架构以适应ORM放弃之前,我已经尝试在阅读本教程后再次映射我的ORM:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/tutorials/composite-primary-keys.html。但它并没有像我想象的那样奏效。然后下面的答案帮助我找到了方法。

  1. Symfony 2: INNER JOIN on non related table with doctrine query builder
  2. Having a custom repository with DBAL connection in Symfony 2 / Doctrine 2?
  3. How can I add the Entity Manager to a custom class or service?
  4. 'Call to a member function get() on a non-object'?
  5. 现在,一切正常。我很高兴我可以在需要时使用DBAL,但不会失去ORM的好处。