我目前正在处理的项目被分割到一个管理控制台和正常的前端。前端和后端都在同一个Laravel实例中。
在前端,我试图创建一个专门为前端工作的用户登录系统。它使用了不同的表和模型,并且与管理员的用户模型有不同的关系。
我想不出的是如何在这两个系统中使用Laravel类。从逻辑上讲,Auth使用一个配置文件,更重要的是使用一个会话名。
提出的一种解决方案是不使用不同的表和模型,并使用某种形式的acl进行区分。但我不喜欢这样把前端和后端混在一起的想法。特别是因为这意味着我必须给管理用户模型所有的字段和关系,以前是唯一的前端用户。
这似乎不是做事情的正确方式。我可以切换到一个不同的身份验证系统,或者将管理分离成一个包,并有自己的信任,但是项目的范围不允许这样的耗时更改。
我欢迎任何你能提供的想法。
发布于 2013-12-15 12:28:24
这也是我最近遇到的一个问题。整个单独的环境并不容易,特别是当您已经拥有开发和生产环境时。
不过,我确实花了一些时间创建一个包来解决这个问题,您可以在https://github.com/ollieread/multiauth上找到这个包。包本身本质上是Auth的一个工厂类,它允许您使用它的多个实例,因此您可以这样访问它:
Auth::admin()->check();
Auth::user()->check();
Auth::whatever()->check();我希望这个包能帮助你或其他人寻找这种方法。
发布于 2013-12-05 15:51:00
我不确定,但也许有用。为什么不尝试创建单独的管理环境。然后您将获得类似app/config/admin/session.php和app/config/session.php的产品(这是默认环境)。
您可以在这里看到如何设置环境http://andrewelkins.com/programming/php/how-to-set-laravel-4-environments/
但正如我所说,这只是一个想法,我不太确定:)
发布于 2014-03-29 02:12:09
听起来,如果不同的用户实体很少或根本不需要看到相同的界面,那么您应该考虑将应用分成两个代码库。显然,他们仍然会查询同一个数据库。
这不仅可以解决您的问题,而且还可以使代码的维护变得非常容易。例如,在将更新推送到管理控制台时,您只需要将该应用程序置于维护模式中,同时保持(可能)更重要的前端启动和运行。
https://stackoverflow.com/questions/18979299
复制相似问题