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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Win10下解决Wireshark“没有找到接口”的问题

    Win10下解决Wireshark“没有找到接口”的问题1 wireshark 自带的 Npcap 不支持 win10 需要重新下载 Win10Pcap 下载地址为 http www win10pcap org download 安装时需要关闭 wireshark 然后重新打开 wireshark 即可 2 把 wireshark 自带的 Npcap 程序卸载后 再次打开了 wireshark 程序 成功解决了

    2025年8月2日
    4
  • 常用邮件服务器软件(邮件服务器软件哪个好)

    常见邮件服务器软件1.微软ExchangeServer[3]​2.TurboMail3.Coremail4.U-Mail5.lifecube网络宝邮件服务器6.MDaemonServer7.WinWebMail8.IceWarp/MerakMailServer9.LotusDomino/Notes10.Postfix/Sendmail/Qm…

    2022年4月17日
    63
  • 怎样选择一个好的虚拟主机

    怎样选择一个好的虚拟主机

    2021年9月22日
    48
  • Java架构师尼恩_java的面试宝典

    Java架构师尼恩_java的面试宝典加架构师尼恩免费领!专题01:JVM面试题(卷王专供+史上最全+2022面试必备)-V2专题02:Java算法面试题(卷王专供+史上最全+2022面试必备)-V2专题03:Java基础面试题(卷王专供+史上最全+2022面试必备)-V2专题04:架构设计面试题(卷王专供+史上最全+2022面试必备)-V2专题05:Spring面试题__专题06:SpringMVC__专题07:Tomcat面试题(卷王专供+史上最全+2022面试必备)-V2专题0

    2026年1月30日
    2
  • Openssl Heartbleed

    Openssl Heartbleed近日闹的沸沸扬扬的Heartbleed漏洞,仿佛一下子再次将人们拉回了对网络安全的关注和担忧。这个问题就是由于服务器端没有对用户发过来的心跳包数据进行边界检查,服务端根据用户心跳包指定的数据长度来返回同样长度的数据。如果用户指定长度为100字节,而实际心跳数据的长度只有1字节,服务端还是会memcpy长度100字节的数据,这样就会把服务端内存中的数据返回给用户,可能会…

    2022年7月15日
    16
  • Opencv画图函数整理 及 cvCircle cvLine 只能画出黑白两种颜色问题 解决「建议收藏」

    Opencv画图函数整理 及 cvCircle cvLine 只能画出黑白两种颜色问题 解决「建议收藏」一句话:用这些画图函数在RGB图上画,则能画出来彩色。如果您在灰度图上画则无论怎么设置color都只能画出黑白两种颜色。就这一句话搞了我一个晚上,惭愧!Opencv绘图函数:http://www.opencv.org.cn/index.php/Cxcore%E7%BB%98%E5%9B%BE%E5%87%BD%E6%95%B0…

    2022年7月24日
    13

发表回复

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

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