【问题标题】:\Auth::user() is null in 5.3.6?\Auth::user() 在 5.3.6 中为空?
【发布时间】:2016-09-09 06:51:30
【问题描述】:

这是关于 Laravel 5.3.6

我能够成功登录,登录后我可以检查身份验证用户。我可以显示Auth::guard() 具有当前用户对象的确切位置。以下是详细信息。

  1. 转到登录控制器
  2. 转到 AuthenticatesUsers Trait
  3. 转到 sendLoginResponse 方法。用户成功到达这里,因为用户身份验证成功。

在这里我可以检查$this->guard()->user() 是否具有当前用户值。但是当控制权到达角色控制器时......我试图像这样dd(Auth::guard()); 访问它并且值为null。我还在 Role Controller 中添加了参考。

use Illuminate\Support\Facades\Auth;

下面是我的角色控制器路线。

Route::group(['middleware' => ['auth']], function () {
    Route::get('/Roles',              
        array (
            'uses'  => 'Website\Role\RoleController@index',      
            'as'    => 'Roles'
        )
    );
});

你在 Laravel 5.3.6 中遇到过这种问题吗?

\Auth::guard() 的输出如下。

SessionGuard {#162 ▼
  #name: "web"
  #lastAttempted: null
  #viaRemember: false
  #session: Store {#165 ▶}
  #cookie: CookieJar {#167 ▶}
  #request: Request {#40 ▶}
  #events: Dispatcher {#5 ▶}
  #loggedOut: false
  #tokenRetrievalAttempted: false
  #user: null
  #provider: EloquentUserProvider {#158 ▶}
}

【问题讨论】:

  • 您是否覆盖了登录控制器中的任何方法,如果是,请发布它
  • 不,我没有重写任何方法。
  • 做了整个 dd(Auth::guard());是空的或只有“用户”部分,你能发布控制器吗?在到达控制器路由之前 dd(Auth::guard());给你收藏?
  • @RoccoMilluzzo:感谢您的回复。我已经用细节更新了这个问题。如果还有什么需要澄清的,请告诉我。
  • 老实说我很奇怪,看起来它不会让用户保持登录状态,它是只发生在角色上还是在所有其他页面上?我已经尝试了 2 个项目,一个 5.2 和一个 5.3,但我无法重现该问题。

标签: laravel laravel-5.2 laravel-5.1 laravel-5.3


【解决方案1】:

Kernel.php 文件如下所示

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
];

protected $middlewareGroups = [
    'web' => [
        \App\Http\Middleware\EncryptCookies::class,
        \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
        \Illuminate\Session\Middleware\StartSession::class,
        \Illuminate\View\Middleware\ShareErrorsFromSession::class,
        \App\Http\Middleware\VerifyCsrfToken::class,
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],

    'api' => [
        'throttle:60,1',
        'bindings',
    ],
];

我把它改成了下面这样。

protected $middleware = [
    \Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
    \App\Http\Middleware\EncryptCookies::class,
    \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
    \Illuminate\Session\Middleware\StartSession::class,
    \Illuminate\View\Middleware\ShareErrorsFromSession::class,
    \App\Http\Middleware\VerifyCsrfToken::class,
];

protected $middlewareGroups = [
    'web' => [
        \Illuminate\Routing\Middleware\SubstituteBindings::class,
    ],

    'api' => [
        'throttle:60,1',
        'bindings',
    ],
];

【讨论】:

    猜你喜欢
    • 2017-03-29
    • 2016-04-02
    • 2020-02-27
    • 2016-05-23
    • 2018-08-11
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多