#2271·jwt-auth

Documentation Issue: $this->middleware() causes "undefined method" error in Laravel

Author: rodrigo1608Created Nov 25, 2024Updated Dec 7, 2025

Documentation Issue: $this->middleware() causes "undefined method" error in Laravel

Hello,

I recently encountered an issue while following the JWT Auth documentation for Laravel. Specifically, in the section where the AuthController is implemented, the provided example uses $this->middleware in the constructor:

php

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;

class AuthController extends Controller
{
    public function __construct()
    {
        $this->middleware('auth:api', ['except' => ['login']]);
    }
}

When running this code in my Laravel environment, I encountered the following error:

Call to undefined method App\Http\Controllers\AuthController::middleware()

After investigating, I discovered that the issue occurs because the Controller class being extended in the example refers to App\Http\Controllers\Controller, which doesn’t have the middleware() method. To fix this, I had to update my controller to extend the Illuminate\Routing\Controller class directly, like this:

php
class AuthController extends \Illuminate\Routing\Controller
{
    public function __construct()
    {
        $this->middleware('auth:api', ['except' => ['login']]);
    }
}

It seems the documentation assumes the base Controller already provides the necessary functionality, which might not always be the case depending on the Laravel version or environment configuration.

Environment Details:

Laravel Version: 11
PHP Version: 8.3

Thank you for this fantastic package! I hope this feedback helps improve the onboarding experience for other users.