【问题标题】:Can't access the Auth::user() from a custom route file ? Laravel 7无法从自定义路由文件访问 Auth::user() ?拉拉维尔 7
【发布时间】:2020-12-20 16:39:53
【问题描述】:

出于某种目的,我决定为管理员创建一个单独的路由文件,并将其逻辑与 web.php 分开,但我却面临这个问题:

//admin.php ( routing file )


<?php

use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Auth

    Route::get('/admin', function ()
            {
                dd(Auth::user());  //return null
            });

ps:admin.php注册在RouteServiceProvider中

public function map()
    {
        $this->mapApiRoutes();
        $this->mapWebRoutes();
        $this->mapAdminRoutes();
         //
    }

protected function mapAdminRoutes()
    {
        Route::middleware('admin')
            ->namespace('App\Http\Controllers\Admin')
            ->group(base_path('routes/admin.php'));
    }

【问题讨论】:

    标签: php laravel laravel-routing laravel-7 laravel-authentication


    【解决方案1】:

    添加网络中间件

    Route::middleware(['web','admin'])->...
    

    【讨论】:

    • 这里要注意的一点是['web', 'admin'] 的顺序应该相同。 ['admin', 'web'] 不行! (Laravel 8)
    【解决方案2】:

    让我们尝试在 config/auth.php 中定义新的路由

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

    因为您想获得会话来检查身份验证。 那就试试这个吧。

    【讨论】:

      猜你喜欢
      • 2017-03-16
      • 2020-08-27
      • 2023-03-07
      • 2019-05-26
      • 2019-04-13
      • 2019-01-01
      • 2019-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多