我正在构建一个Laravel 4应用程序,需要为3种实体类型进行登录身份验证:教练,学生和管理员,每种实体类型都有单独的用户界面。虽然我可以使用像Sentry 2这样的包,并使用具有用户类型的单个DB用户表来实现此目的,但是在潜在的多态DB设计模式和可能发生的问题方面,我感到不安。过去曾处理过以前应用程序中的多态问题,以及当您想要规范化DB结构等时可能会创建的问题。对于每种实体类型都有单独的DB表格似乎是更好的方法。
你如何解决这个设计问题?
Laravel 4 auth基本上使用以下文件:
- Auth.php(facade) - AuthManager.php - AuthServiceProvider.php - Guard.php - auth.php(config) - User.php(eloquent model)
我已经尝试复制这些文件,主要是为了教练实体的独立认证,注册facade和service provider到app.php文件中,并进行必要的更改以使用Coach eloquent model进行身份验证的配置:
- AuthCoach.php(facade) - AuthCoachManager.php - AuthCoachServiceProvider.php - Guard.php - authcoach.php(config) - Coach.php(eloquent model)
我仍在使用标准Laravel 4 auth中的Guard.php,但是如果需要通过创建GuardCoach.php文件来自定义Guard方法以进行教练身份验证,则可以轻松扩展Guard。
如果我要为每种实体类型都有单独的身份验证,你认为这是一个好方法吗?
你是否看到任何潜在问题或知道更好的方法?
你如何解决这个设计问题?
Laravel 4 auth基本上使用以下文件:
- Auth.php(facade) - AuthManager.php - AuthServiceProvider.php - Guard.php - auth.php(config) - User.php(eloquent model)
我已经尝试复制这些文件,主要是为了教练实体的独立认证,注册facade和service provider到app.php文件中,并进行必要的更改以使用Coach eloquent model进行身份验证的配置:
- AuthCoach.php(facade) - AuthCoachManager.php - AuthCoachServiceProvider.php - Guard.php - authcoach.php(config) - Coach.php(eloquent model)
我仍在使用标准Laravel 4 auth中的Guard.php,但是如果需要通过创建GuardCoach.php文件来自定义Guard方法以进行教练身份验证,则可以轻松扩展Guard。
如果我要为每种实体类型都有单独的身份验证,你认为这是一个好方法吗?
你是否看到任何潜在问题或知道更好的方法?