FatalThrowableError Call to undefined method App\Exceptions\Handler::unauthenticated() laravel 5.4

I'm having the problem that when my user is not logged in and I go to a route that needs authentication for my blog, it throws the exception: "

Call to undefined method App\Exceptions\Handler::unauthenticated()

" Although I don't have a method named unauthenticated() in the directory

App\Exceptions\Handler.

I want to show login form for my user when he/she click on a route that needs authentication, how to do that?


In your App\Exceptions\Handler file, add a function unauthenticated, Laravel will recognise this and will execute what you defined here.

You can add this function:

public function unauthenticated($request, AuthenticationException $exception)
    {
        return ''; // use redirect('/login') or something if you want to redirect to login.
    }

Although if you use php artisan make:auth, Laravel sets the unauthenticated page automatically to the login page. So don't know if you used this, maybe you changed something else in the standard Laravel code.

I hope the above function helps.

Call to undefined method App\Exceptions\Handler::unauthenticated() in laravel 5.4 #18877. Closed. alfonsobries opened this issue on Apr 19,  Laravel Version: 5.4 PHP Version: 7.1.3 Database Driver & Version: Mysql (homestead) Description: I just update my app from 5.3 to 5.4 I found that when my user is not logged and i go to a route that needs authentication my app trows the


The unauthenticated exception thrown by the framework itself.

If you have the auth middleware on the route, it should redirect you to the login page Route::get('/test', 'TestController@show')->middleware('auth');

See the docs for more info.

Laravel Version: 5.4.22 PHP Version: 5.6.28 Database Driver Call to undefined method App\Exceptions\Handler::unauthenticated() #19190. FatalErrorException in Handler.php line 114: Call to undefined method App\Exceptions\Handler::unauthenticated() #19190 jmichaelterenin opened this issue May 13, 2017 · 1 comment Comments


It happens because unauthenticated function somehow missing from error handler.

Go to App\Exceptions\Handler.php file and add the following function.

<?php        
    protected function unauthenticated($request, AuthenticationException $exception)
    {
        if ($request->expectsJson()) {
            return response()->json(['error' => 'Unauthenticated.'], 401);
        }
        return redirect()->guest('login');
    }

change guest('login') to your desired location.

You can use it in class like this:

Illuminate\Auth\AuthenticationException as AuthenticationException;

Hi all, I created another middleware for Admin and using it to restrict users from accessing the administrator pages. For normal users, I tried  Dismiss Join GitHub today. GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.


@JS_tai In Laravel 5.3 handling of unauthenticated responses is located in app\​Exceptions\Handler.php . There is method. /** * Convert an  laravel 5.4: PHP Fatal error: Call to undefined method Illuminate\Foundation\Application::configure() 1 Laravel - php artisan config:cache - [ReflectionException] Class cache.store does not exist


He also developed Laravel apps and APIs, as well as AngularJS apps. We'll be using Laravel 5.4, and all of the code is available for reference on php artisan db:seed and it will run all the called classes in the run() method. We can fix that by editing our exception handler class, located in app/Exceptions/Handler.php  Otherwise the service providers should be registered in config/app not in your bootstrap/app. Also for laravel 5.5 support use v3.3.0-alpha version. That version has auto-discovery so no need to even register the service provider.


In some cases you have to also delete the storage/framework/compiled.php to make it work. It happened to me on a Laravel Forge deployment. The “Fatal error: Call to undefined method” or “Fatal error: Call to undefined function” messages that reference one of your theme’s files or one of your plugins, are coming from that theme or plugin.