事件处理程序Auth :: check()返回false

I am trying to use Auth::check() in an event handler in Laravel 5.2.13. However, when I do dd(Auth::check()) it always returns false even when I'm logged in.

If I dd() in a controller, it does return true and I'm definitely logged in. My code:

<?php namespace App\Listeners;

use App\Userpath;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Crypt;

class UserEventListener
{
    public function onNewPath($event)
    {
        dd(Auth::check()); // <--- always returns false!!
    }

    public function subscribe($events)
    {
        $events->listen(
            'App\Events\NewPath',
            'App\Listeners\UserEventListener@onNewPath'
        );
    }
} 

my routes

Route::group(['middleware' => 'web'], function () {

    ...


    Route::group(['middleware' => ['termsandconditions', 'auth']], function () {

        Event::fire(new NewPath()); //NewPath is just an empty default event

        ...

My kernel.php

<?php

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel
{

    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,
        ],

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


    protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'admin' => \App\Http\Middleware\AdminMiddleware::class,
    ];
}

How do I get a legit answer if I'm logged in or not? I looked everywhere on SO, changed routes and middleware groups and what not but I can't get it to work. Thanks in advance!

how are you login users into your application ? I recommend you to add the authetication midleware that you are using only to the $midleware var into your kernel.php midleware file.

Seems like the namespace is wrong, since you're in App\Listeners, so it's try to use App\Listeners\Auth. Try:

dd(\Auth::check());

or use Auth; on top of your file.