Laravel Auth 更为简便的使用
前言
众所周知,我们绝大多数项目最少会有前台展示页面【不管是pc还是wap甚至于api】和一个后台管理页面
那么在使用Auth门面进行用户管理时,因为数据表的不一致,你可能会书写如下代码
前台使用
// 验证
Auth::guard('home')->check();
// 取出用户
Auth::guard('home')->user();
后台使用
// 验证
Auth::guard('admin')->check();
// 取出用户
Auth::guard('admin')->user();
你会发现你都会使用guard来指定用户组,对于我这种懒人来说,这种明显是不太智能化的
解决方法
以下是我自己使用laravel以来一直使用的小方法,已经很久了,不知道有没有人公布出来过类似的方法
其实很简单,只需要在使用端的路由,添加一个基础中间件,让基础中间件来修改config默认配置即可
核心代码
config([
'auth.defaults.guard' => 'admin'
]);
然后你就可以在后台直接使用,前台和其他端同理
// 验证
Auth::check();
// 取出用户
Auth::user();
附上自己的demo部分源码给予参考
admin路由文件描述
路由服务提供者代码
中间件文件代码
这里就不再赘述如何定义中间件了,可以自己去查找中间件文档
最后可能会有人想直接写在对应端的BaseController不也一样吗,但是如果当你的请求还没有到控制器呢?
比如登录验证不就是在中间件内进行的吗?
比如表单验证不也还是在控制器之前吗?【前提是你在request前用到了Auth,比如某个数据主键你希望是当前用户可管理的】
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: