Jwt-auth: Only when testing ReflectionException: Class Tymon\JWTAuth\Middleware\GetUserFromToken

Created on 23 Jan 2017  路  8Comments  路  Source: tymondesigns/jwt-auth

When i run vendor/bin/phpunit show the error

ReflectionException: Class Tymon\JWTAuth\Middleware\GetUserFromToken

/home/thiagoaos/workspace/projects/php/base/vendor/laravel/framework/src/Illuminate/Container/Container.php:741
/home/thiagoaos/workspace/projects/php/base/vendor/laravel/framework/src/Illuminate/Container/Container.php:631
/home/thiagoaos/workspace/projects/php/base/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:674
/home/thiagoaos/workspace/projects/php/base/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:142
/home/thiagoaos/workspace/projects/php/base/vendor/laravel/framework/src/Illuminate/Foundation/Testing/CrawlerTrait.php:396
/home/thiagoaos/workspace/projects/php/base/vendor/laravel/framework/src/Illuminate/Foundation/Testing/CrawlerTrait.php:71
/home/thiagoaos/workspace/projects/php/base/tests/UserTest.php:25

But the application works like a charm in develop mode.

    /**
     * The application's route middleware.
     *
     * @var array
     */
    protected $routeMiddleware = [
        'cors' => \App\Http\Middleware\Cors::class,
        'jwt.auth' => "Tymon\JWTAuth\Middleware\GetUserFromToken",
        'jwt.refresh' => "Tymon\JWTAuth\Middleware\RefreshToken",
        'acl.role' => \App\Http\Middleware\HasRole::class,
        'acl.permission' => \App\Http\Middleware\HasPermission::class,
        'develop.auth' => \App\Http\Middleware\DevelopAuth::class
    ];

I test with class approach too

    'jwt.auth' => \Tymon\JWTAuth\Middleware\GetUserFromToken::class,
    'jwt.refresh' => \Tymon\JWTAuth\Middleware\RefreshToken::class,
    'providers' => [
    ...
        Tymon\JWTAuth\Providers\LaravelServiceProvider::class
    ],
    'aliases' => [
    ...
        'JWTAuth'       => Tymon\JWTAuth\Facades\JWTAuth::class,
        'JWTFactory'    => Tymon\JWTAuth\Facades\JWTFactory::class
    ],

I was using alpha.2 (another Provider config) and now i test with this config using beta.1. Both work in development but in test throgth vendor/bin/phpunit no.

Need some config to work in test?

Most helpful comment

Fixed by changing:

Tymon\JWTAuth\Middleware\GetUserFromToken::class

to

Tymon\JWTAuth\Http\Middleware\Authenticate::class

All 8 comments

Getting the same error when using Laravel 5.4

Class Tymon\JWTAuth\Middleware\GetUserFromToken does not exist

Fixed by changing:

Tymon\JWTAuth\Middleware\GetUserFromToken::class

to

Tymon\JWTAuth\Http\Middleware\Authenticate::class

I see that in source code :)
The middleware in alpha 2 and beta 1 change the name.
And now, don't need more do declare in kernel.php, the new Provider already did that automatically.

The strange thing is that only happened the error when i started the system by phpunit

I had the same issue, and changing the name worked :) but for me it was also working fine before the change from outside phpunit. Does this mean that the library is loaded twice (with the old name and the new name) for calls outside phpunit? This worries me a little. Can someone help us find out why it was working from outside phpunit with the old name?

BTW. With the new name it works fine form curl and from phpunit so this is quite weird...

@gmann1982
now it gives: Class Tymon\\JWTAuth\\Middleware\\Authenticate does not exist
LOL, I hate it

this worked for me
using [laravel 5.6 & jwt-auth 1.0]

'jwt.auth' => \Tymon\JWTAuth\Http\Middleware\Authenticate::class,
'jwt.refresh' => \TymonJWTAuth\MiddlewareRefreshToken::class

laravel 5.6+ & jwt-auth 1.0+

'jwt.auth' => \Tymon\JWTAuth\Http\Middleware\Authenticate::class,
'jwt.refresh' => \Tymon\JWTAuth\Http\Middleware\RefreshToken::class,

laravel 5.6+ & jwt-auth 1.0+

'jwt.auth' => \Tymon\JWTAuth\Http\Middleware\Authenticate::class,
'jwt.refresh' => \Tymon\JWTAuth\Http\Middleware\RefreshToken::class,

This worked for me

"laravel/framework": "^7.0"
"tymon/jwt-auth": "dev-develop"

Was this page helpful?
0 / 5 - 0 ratings

Related issues

agneshoving picture agneshoving  路  3Comments

aofdev picture aofdev  路  3Comments

therealmjk picture therealmjk  路  3Comments

gamelife1314 picture gamelife1314  路  3Comments

johncloud200 picture johncloud200  路  3Comments