首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony多种用户类型和自定义用户提供程序

Symfony多种用户类型和自定义用户提供程序
EN

Stack Overflow用户
提问于 2018-07-27 19:17:33
回答 1查看 1.1K关注 0票数 0

我正在为一个类似于Uber的应用程序设计架构和数据库。我一直在设计User实体和创建自定义用户提供程序。User drivercustomer有两种类型。用户可以将其电子邮件注册为drivercustomer

有没有好的读物或项目可以让我了解创建具有多种用户类型的应用程序的最佳方法。

这就是我目前的想法:

我从抽象的User实体开始

代码语言:javascript
复制
/**
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="discr", type="string")
 * @ORM\DiscriminatorMap({"customer" = "Customer", "driver" = "Driver"})
 * @ORM\Entity(repositoryClass="App\Repository\UserRepository")
 */
abstract class User {
     /**
      * @ORM\Id()
      * @ORM\GeneratedValue()
      * @ORM\Column(type="integer")
      */
      protected $id;
}

Customer类看起来像这样:

代码语言:javascript
复制
class Customer extends User
{
  /**
   * @ORM\Id()
   * @ORM\GeneratedValue()
   * @ORM\Column(type="integer")
   */
  protected $id;

  /**
   * @var string
   *
   * @ORM\Column(type="string", nullable=false, name="email", unique=true)
   */
  protected $email;

Driver类:

代码语言:javascript
复制
 class Driver extends User
   {
  /**
   * @ORM\Id()
   * @ORM\GeneratedValue()
   * @ORM\Column(type="integer")
   */
  protected $id;

  /**
   * @var string
   *
   * @ORM\Column(type="string", nullable=false, name="email", unique=true)
   */
  protected $email;

然而,我不确定这种用户实体结构是否是一个好主意。但是,如果我继续使用这个数据库模型,那么用户授权的最佳策略是什么?我计划使用FOS oAuth来保证安全。每种类型的User都有单独的防火墙是不是更好

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-27 19:32:31

您应该考虑基于角色的方法,而不是基于类型的设计

如果您需要多态查询和关系,则连接策略可能是您的最佳选择

这样,用户可以将他的电子邮件注册为司机和客户。用户A具有角色DRIVER_ROLE、USER_ROLE

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51556847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档