laravel5.4 前后台未登陆,跳转到各自的页面

举报
lxw1844912514 发表于 2022/03/27 22:54:23 2022/03/27
3.4k+ 0 0
【摘要】 https://www.imooc.com/wenda/detail/378208?t=266634 laravel我做了前后台登陆,后台未登录跳转到前台登陆页面了。 我想让后台未登入跳转到后台登陆页面,前台未登陆跳转到前台登陆页面。 config\auth.php 添加guards中的admin和provide...

https://www.imooc.com/wenda/detail/378208?t=266634

laravel我做了前后台登陆,后台未登录跳转到前台登陆页面了。 我想让后台未登入跳转到后台登陆页面,前台未登陆跳转到前台登陆页面。

config\auth.php 
添加guards中的admin和providers中的admins


        <?php
        'defaults' => [
           'guard' => 'web',
           'passwords' => 'users',
        ],
        'guards' => [
           'web' => [
               'driver' => 'session',
               'provider' => 'users',
            ],
           'api' => [
               'driver' => 'token',
               'provider' => 'users',
            ],
           'admin' => [
               'driver' => 'session',
               'provider' => 'admins',
            ],
        ],
        'providers' => [
           'users' => [
               'driver' => 'eloquent',
               'model' => App\User::class,
            ],
           'admins' => [
               'driver' => 'eloquent',
               'model' => App\AdminUser::class,
            ],
        ],
        'passwords' => [
           'users' => [
               'provider' => 'users',
               'table' => 'password_resets',
               'expire' => 60,
            ],
        ],
    
   

 路由


        //登陆页面
        Route::get('/login', "\App\Http\Controllers\LoginController@index")->name('login');
        //登陆行为
        Route::post('/login', "\App\Http\Controllers\LoginController@login");
        Route::group(['middleware' => 'auth:web'],function (){
            Route::get('/posts', '\App\Http\Controllers\PostController@index');
        }
        //后台
        Route::group(['prefix' => 'admin'], function() {
            Route::get('/login', '\App\Admin\Controllers\LoginController@index');
            Route::post('/login', '\App\Admin\Controllers\LoginController@login');
            Route::get('/logout', '\App\Admin\Controllers\LoginController@logout');
            Route::group(['middleware' => 'auth:admin'],function (){
                Route::get('/home', '\App\Admin\Controllers\HomeController@index');
            });
        });
    
   

 遇到的页面跳转问题

解答:

需要在 App\Exceptions\Handler.php 文件修改


        <?php
        namespace App\Exceptions;
        use Exception;
        use Illuminate\Auth\AuthenticationException;
        use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
        class Handler extends ExceptionHandler
        {
           /**
         * A list of the exception types that should not be reported.
         *
         * @var array
         */
           protected $dontReport = [
                \Illuminate\Auth\AuthenticationException::class,
                \Illuminate\Auth\Access\AuthorizationException::class,
                \Symfony\Component\HttpKernel\Exception\HttpException::class,
                \Illuminate\Database\Eloquent\ModelNotFoundException::class,
                \Illuminate\Session\TokenMismatchException::class,
                \Illuminate\Validation\ValidationException::class,
            ];
           /**
         * Report or log an exception.
         *
         * This is a great spot to send exceptions to Sentry, Bugsnag, etc.
         *
         * @param \Exception $exception
         * @return void
         */
           public function report(Exception $exception)
            {
               parent::report($exception);
            }
           /**
         * Render an exception into an HTTP response.
         *
         * @param \Illuminate\Http\Request $request
         * @param \Exception $exception
         * @return \Illuminate\Http\Response
         */
           public function render($request, Exception $exception)
            {
               return parent::render($request, $exception);
            }
           /**
         * Convert an authentication exception into an unauthenticated response.
         *
         * @param \Illuminate\Http\Request $request
         * @param \Illuminate\Auth\AuthenticationException $exception
         * @return \Illuminate\Http\Response
         */
           protected function unauthenticated($request, AuthenticationException $exception)
            {
               if ($request->expectsJson()) {
                   return response()->json(['error' => 'Unauthenticated.'], 401);
                }
               if (in_array('admin', $exception->guards())) {
                   return redirect()->guest('/admin/login');
                }
               #return redirect()->guest(route('login'));
    
   
    return redirect()->guest(route('/')); #亲测可行
} }
   

 解答2:

后端路由  加上 

Route::get('/login', '\App\Admin\Controllers\LoginController@index')->name('login');

     

文章来源: blog.csdn.net,作者:lxw1844912514,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/lxw1844912514/article/details/100028459

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。