首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel 4多用户认证

Laravel 4多用户认证
EN

Stack Overflow用户
提问于 2013-09-07 10:18:32
回答 2查看 5K关注 0票数 7

我正在构建一个Laravel 4应用程序,它需要3种实体类型的登录身份验证:教练、学生和管理,所有这些都有单独的用户界面。虽然我可以使用Sentry 2这样的包和带有用户类型的单个DB用户表来实现这一目标,但是对于可能出现的多态DB设计模式和问题,请不要对我坐视不管。在过去处理过以前的应用程序中的多态问题,以及当您想要规范您的DB结构时它可能造成的痛苦,等等,为每种实体类型设置单独的DB表似乎是一个更好的方法。

你将如何解决这个设计问题?

Laravel 4 auth基本上使用以下文件:

  • Auth.php (正面)
  • AuthManager.php
  • AuthServiceProvider.php
  • Guard.php
  • auth.php (配置)
  • User.php (雄辩模型)

我已经尝试过复制这些文件,以便为工作的coach实体提供一个独立的auth,在app.php文件中注册外观和服务提供者,并对配置进行必要的更改,以使用Coach雄辩模型进行身份验证:

  • AuthCoach.php (正面)
  • AuthCoachManager.php
  • AuthCoachServiceProvider.php
  • Guard.php
  • authcoach.php (配置)
  • Coach.php (雄辩模型)

我仍然在使用来自标准Laravel4auth的Guard.php,但是,如果需要通过创建一个GuardCoach.php文件来定制用于教练身份验证的守护方法,那么可以很容易地扩展GuardCoach.php。

如果我要为每种实体类型分别使用auth,您认为这是实现这一目标的好方法吗?

你能看到任何潜在的问题或者知道更好的方法吗?

EN

Stack Overflow用户

发布于 2013-09-07 11:01:04

也许我不太理解您的上下文,但是为什么不直接使用基于角色的访问控制的基本概念,为不同的角色提供不同的内容呢?如果不够紧,可以使用基于属性的auth策略来授予权限。你想复制(三重)逻辑的原因是什么?没有提到冗余db数据的事实(单独的用户表用于单独的用户类型?)啊!)?

如果你对Sentry不满意(我个人不使用这个库),我可以推荐Zizaco/Confide + Zizaco/Entrust作为一个干净优雅的用户/角色/权限管理解决方案。看看这里,Zizaco GitHub

一个快速的总体想法:

  • 对整个应用程序使用单一的清洁身份验证机制
  • 角色或Roles+Permissions的粒度访问
  • 将您的管理逻辑分离成单独的控制器(AdminUserController,AdminCoachController,任何..)
  • 我不认为有困难的组成适当的叶片模板结构,使它做得很好,组织得很好。

你的多态关注点是什么?

如果您担心您的用户表会变得杂乱无章,请将其保留为存储auth详细信息的地方,并将所有其他必需的(非auth)用户详细信息放在另一个表中。

希望这能帮助你,只要我能很好地理解你的问题。

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

https://stackoverflow.com/questions/18672276

复制
相关文章

相似问题

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