Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Authentication Laravel 4中的多个身份验证会话_Authentication_Laravel_Laravel 4 - Fatal编程技术网

Authentication Laravel 4中的多个身份验证会话

Authentication Laravel 4中的多个身份验证会话,authentication,laravel,laravel-4,Authentication,Laravel,Laravel 4,我目前正在处理的项目在一个管理控制台和一个普通前端中分开。 前端和后端都在同一个Laravel实例中 在前端,我试图创建一个专门为前端工作的用户登录系统。它使用不同的表和模型,并且与管理员的用户模型有不同的关系 我搞不清楚的是两个系统都使用Laravel Auth类的方法。从逻辑上讲,Auth使用一个配置文件,更确切地说,使用一个会话名称 已经提出的一种解决方案是不使用不同的表和模型,而是使用某种形式的acl进行区分。但我不喜欢这样混合前端和后端的想法。特别是因为这意味着我必须突然给管理员用户模

我目前正在处理的项目在一个管理控制台和一个普通前端中分开。 前端和后端都在同一个Laravel实例中

在前端,我试图创建一个专门为前端工作的用户登录系统。它使用不同的表和模型,并且与管理员的用户模型有不同的关系

我搞不清楚的是两个系统都使用Laravel Auth类的方法。从逻辑上讲,Auth使用一个配置文件,更确切地说,使用一个会话名称

已经提出的一种解决方案是不使用不同的表和模型,而是使用某种形式的acl进行区分。但我不喜欢这样混合前端和后端的想法。特别是因为这意味着我必须突然给管理员用户模型提供所有字段和关系,这些字段和关系以前是前端用户所独有的

这似乎不是正确的做事方式。我可以切换到一个不同的身份验证系统,或者用自己的配置将管理员分离到一个包中,但是项目的范围不允许这样耗时的更改


我欢迎你提供任何想法

我不确定,但可能有用。为什么不尝试为管理员创建一个独立的环境呢。然后您将有类似于app/config/admin/session.php和app/config/session.php的产品(这是默认环境)

您可以在这里看到如何设置环境


但正如我所说,这只是一个想法,我不太确定:)

这也是我最近遇到的一个问题。整个独立的环境不是很容易,特别是如果您已经有了开发和生产环境

不过,我确实花了一些时间创建了一个包来解决这个问题,您可以在上找到。包本身本质上是Auth的工厂类,它允许您使用它的多个实例,因此您可以像这样访问它:

Auth::admin()->check();
Auth::user()->check();
Auth::whatever()->check();

<>我希望这个软件包能帮助你或者任何其他人寻找这个方法。

听起来好像你应该考虑把不同的用户实体分割成两个代码库,如果不同的用户实体很少或者永远不需要看到相同的接口。显然,他们仍然会查询同一个数据库


这不仅可以解决您的身份验证问题,还可以使维护代码变得更加容易。例如,在将更新推送到管理控制台时,您只需将该应用程序置于维护模式,同时保持(大概)更关键的前端的启动和运行。

这可能是有帮助的。显然,环境是解决问题的方法。设置admin.yoursite.com并相应地修改配置文件。这假设您没有向特定于角色的用户类添加自定义方法。这实际上是一个很好的观点。我们拒绝了拆分这些代码库的想法,因为在我们的案例中,利益大于担忧。然而,关于独立维护模式的观点可能会使天平倾斜。