在Laravel 5.1中使用中间件时,类jwt-auth不存在错误

时间:2015-11-07 17:53:56

标签: php laravel-5.1 jwt

我按照官方JWT-Auth安装https://github.com/tymondesigns/jwt-auth/wiki/Installation

我现在在我的控制器中有一个中间件:

$this->middleware('jwt-auth', ['only' => ['postChange', 'postChoose']]);

我还在Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class

中的提供者数组中添加了config/app.php

但是当我向API发出请求时,我收到以下错误消息:

ReflectionException in Container.php line 737:
Class jwt-auth does not exist

任何帮助都将受到赞赏。

3 个答案:

答案 0 :(得分:12)

我在使用中间件时遇到同样的问题,你必须在app/Http/Kernel.php属性$routeMiddleware下注册它们:

protected $routeMiddleware = [
    ...
    'jwt.auth' => 'Tymon\JWTAuth\Middleware\GetUserFromToken',
    'jwt.refresh' => 'Tymon\JWTAuth\Middleware\RefreshToken',
];

答案 1 :(得分:2)

我遇到了同样的问题,结果是在路径的开头需要“\”(与其他中间件条目类似):

'jwt.auth' => \Tymon\JWTAuth\Providers\JWTAuthServiceProvider::class

这解决了我的问题(Laravel 5.1.4)

答案 2 :(得分:1)

我一直面临类似的问题。 你必须准确添加

protected $routeMiddleware = [
    .......
    'jwt.auth' => \Tymon\JWTAuth\Middleware\GetUserFromToken::class,
    'jwt.refresh' => \Tymon\JWTAuth\Middleware\RefreshToken::class,
];

在开头记住“\”。

Laravel 5.2