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

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

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');

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113048.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • node 的运行命令

    node 的运行命令node 的运行命令

    2022年4月23日
    362
  • 破坏ice的服务器消息,我的世界:ICE服务器炸,矛头指向Mn,但真相另有隐情!…

    破坏ice的服务器消息,我的世界:ICE服务器炸,矛头指向Mn,但真相另有隐情!…在游戏界中,有一场游戏玩家之间的“战争”,那就是《我的世界》和《迷你世界》。这场战争本来已经停息了很久,但是又因为某些事情,让它快速的发酵了起来。这件事情的原由是因为《我的世界》的ICE服务器被炸,具体经过小编下面为大家讲解。3月25号(大约时间),一个名为ICE的《我的世界》服务器被其他玩家恶意毁坏了,里面的建筑变得残破不堪,而服务器的存档也仅仅只有数天前的。要知道,这些建筑是很多玩家用大量的时…

    2022年6月12日
    51
  • Spring Boot和SpringCloud Alibaba学习笔记

    Spring Boot和SpringCloud Alibaba学习笔记

    2021年7月11日
    96
  • mvc中的OutputCache[通俗易懂]

    mvc中的OutputCache[通俗易懂]mvc4中有一个标记属性OutputCache,用来对ActionResult结果进行缓存,如何理解呢?概括地说,就是当你的请求参数没有发生变化时,直接从缓存中取结果,不会再走服务端的Action代码

    2022年7月2日
    28
  • 游戏编程编程学习推荐

    游戏编程编程学习推荐一下资料是从网上搜集的推荐,非本人原创,作为自己学习使用不要单单看批处理了,学powershell,.net驱动,功能强大我觉得shell脚本用的挺多的啊,bat还是很少用到.不过经常接触到,所以我

    2022年8月2日
    11
  • java实现excel导入导出功能_java导出excel合并列

    java实现excel导入导出功能_java导出excel合并列一、在后台实现,利用java的poi1、导入jar包,需要导入lib文件夹下如下包:poi-3.11-20141221.jarpoi-ooxml.jarpoi-ooxml-schemas.jar2、在util下写一个公共类,该类主要利用JakartaPOIHSSFAPI组件(用于操作Excel的组件),主要部分包括Excel对象,样式和格式,还有辅助操作。常用组件:……………

    2022年8月10日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号