博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Laravel5.5 基于内置的Auth实现前后台登陆
阅读量:5880 次
发布时间:2019-06-19

本文共 2122 字,大约阅读时间需要 7 分钟。

步骤1:生成Auth

在项目建立完成后,生成内置Auth组件:

php artisan make:auth

步骤2:添加guard

打开config\auth.php,为方便前后台用户切换,项目共用Users表

'guards' => [        //...        'admin' => [            'driver' => 'session',            'provider' => 'users',        ],        //...    ],

步骤3:实现基类

class AdminController extends BaseController{    use AuthorizesRequests, DispatchesJobs, ValidatesRequests;    public function __construct()    {        $this->middleware('auth:admin');    }}

步骤4:实现后台登陆控制器

新建appcontrollersAdminLoginController.php

middleware('guest:admin')->except('logout'); } /** * 重写登陆页面 * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function showLoginForm() { return view('backend.login'); } /** * 重写退出方法 * @param Request $request * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector */ public function logout(Request $request) { $this->guard()->logout(); $request->session()->flush(); $request->session()->regenerate(); return redirect('/admin/login'); } /** * 重写guard认证 * @return mixed */ protected function guard() { return Auth::guard('admin'); }}

步骤5:实现登陆后跳转到不同路径

app\Middleware\RedirectIfAuthenticated.php

public function handle($request, Closure $next, $guard = null){        if (Auth::guard($guard)->check()) {            $path = $guard ? '/admin' : '/home';            return redirect($path);        }        return $next($request);}

步骤6:实现未通过认证跳转不同登陆页

app\Exceptions\Handler.php

/**     * 重写实现未认证用户跳转至相应登陆页     * @param \Illuminate\Http\Request $request     * @param AuthenticationException $exception     * @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse     */    protected function unauthenticated($request, AuthenticationException $exception)    {        if($request->expectsJson()){            return response()->json(['message' => $exception->getMessage()], 401);        }else{            return in_array('admin', $exception->guards()) ? return redirect()->guest('/admin/login') : redirect()->guest('login');        }    }

完成

转载地址:http://jjcix.baihongyu.com/

你可能感兴趣的文章
Boost在vs2010下的配置
查看>>
一起谈.NET技术,ASP.NET伪静态的实现及伪静态的意义
查看>>
20款绝佳的HTML5应用程序示例
查看>>
string::c_str()、string::c_data()及string与char *的正确转换
查看>>
11G数据的hive初测试
查看>>
如何使用Core Text计算一段文本绘制在屏幕上之后的高度
查看>>
==和equals区别
查看>>
2010技术应用计划
查看>>
XML 节点类型
查看>>
驯服 Tiger: 并发集合 超越 Map、Collection、List 和 Set
查看>>
Winform开发框架之权限管理系统改进的经验总结(3)-系统登录黑白名单的实现...
查看>>
Template Method Design Pattern in Java
查看>>
MVC输出字符串常用四个方式
查看>>
LeetCode – LRU Cache (Java)
查看>>
JavaScript高级程序设计--对象,数组(栈方法,队列方法,重排序方法,迭代方法)...
查看>>
【转】 学习ios(必看经典)牛人40天精通iOS开发的学习方法【2015.12.2
查看>>
在 ASP.NET MVC 中使用异步控制器
查看>>
SQL语句的执行过程
查看>>
Silverlight开发历程—动画(线性动画)
查看>>
详解Linux中Load average负载
查看>>