Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php JWT,Laravel类Tymon\JWTAuth\MiddlewareGetUserFromToken不存在_Php_Laravel_Laravel 5_Jwt - Fatal编程技术网

Php JWT,Laravel类Tymon\JWTAuth\MiddlewareGetUserFromToken不存在

Php JWT,Laravel类Tymon\JWTAuth\MiddlewareGetUserFromToken不存在,php,laravel,laravel-5,jwt,Php,Laravel,Laravel 5,Jwt,我在我的Laravel5.0.35应用程序上设置了JWT(tymondesigns/JWTAuth)。身份验证非常有效。但是,当我使用jwt.auth中间件时,有一个错误:异常'ReflectionException',消息'Class Tymon\JWTAuth\MiddlewareGetUserFromToken不存在' 感谢您的帮助)以下是可能对您有帮助的文件: app.php $providers = [ // other records 'Tymon\JWTAuth\P

我在我的Laravel5.0.35应用程序上设置了JWT(
tymondesigns/JWTAuth
)。身份验证非常有效。但是,当我使用
jwt.auth
中间件时,有一个错误:
异常'ReflectionException',消息'Class Tymon\JWTAuth\MiddlewareGetUserFromToken不存在'

感谢您的帮助)以下是可能对您有帮助的文件:

app.php

$providers = [
    // other records
    'Tymon\JWTAuth\Providers\JWTAuthServiceProvider',
];

'aliases' => [
    // other records
    'JWTAuth'   => 'Tymon\JWTAuth\Facades\JWTAuth',
    'JWTFactory' => 'Tymon\JWTAuth\Facades\JWTFactory'
];
protected $routeMiddleware = [
    'auth' => 'App\Http\Middleware\Authenticate',
    'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
    'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
    'jwt.auth' => 'Tymon\JWTAuth\MiddlewareGetUserFromToken',
    'jwt.refresh' => 'TymonJWTAuth\MiddlewareRefreshToken'
];
kernel.php

$providers = [
    // other records
    'Tymon\JWTAuth\Providers\JWTAuthServiceProvider',
];

'aliases' => [
    // other records
    'JWTAuth'   => 'Tymon\JWTAuth\Facades\JWTAuth',
    'JWTFactory' => 'Tymon\JWTAuth\Facades\JWTFactory'
];
protected $routeMiddleware = [
    'auth' => 'App\Http\Middleware\Authenticate',
    'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
    'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
    'jwt.auth' => 'Tymon\JWTAuth\MiddlewareGetUserFromToken',
    'jwt.refresh' => 'TymonJWTAuth\MiddlewareRefreshToken'
];
我调用
jwt.auth
中间件的控件

namespace App\Http\Controllers\Resources;

use IlluminateHttpRequest;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use JWTAuth;
use Tymon\JWTAuth\Exceptions\JWTException;
use App\User;


use PDO;
use Log;

class DirectionsController extends Controller {

    public function __construct()
   {
       $this->middleware('jwt.auth');
   }
compsoser.json

{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
    "laravel/framework": "5.0.*",
    "guzzlehttp/guzzle": "~6.0",
    "rap2hpoutre/laravel-log-viewer": "0.2.*",
    "irazasyed/telegram-bot-sdk": "^2.0",
    "tymon/jwt-auth": "0.5.*"
},
"require-dev": {
    "phpunit/phpunit": "~4.0",
    "phpspec/phpspec": "~2.1"
},
"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},
"autoload-dev": {
    "classmap": [
        "tests/TestCase.php"
    ]
},
"scripts": {
    "post-install-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "post-update-cmd": [
        "php artisan clear-compiled",
        "php artisan optimize"
    ],
    "post-create-project-cmd": [
        "php -r \"copy('.env.example', '.env');\"",
        "php artisan key:generate"
    ]
},
"config": {
    "preferred-install": "dist"
}

}我发现了错误。错误是kernel.php中有中间件声明

'jwt.auth' => 'Tymon\JWTAuth\MiddlewareGetUserFromToken',
'jwt.refresh' => 'TymonJWTAuth\MiddlewareRefreshToken'

因此,MiddlewareGetUserFromToken应为
Middleware\GetUserFromToken
,而不是
MiddlewareGetUserFromToken
。看起来这种类型是我在博客上复制的。从其他网站复制代码时要小心)

我发现了错误。错误是kernel.php中有中间件声明

'jwt.auth' => 'Tymon\JWTAuth\MiddlewareGetUserFromToken',
'jwt.refresh' => 'TymonJWTAuth\MiddlewareRefreshToken'

因此,MiddlewareGetUserFromToken应为
Middleware\GetUserFromToken
,而不是
MiddlewareGetUserFromToken
。看起来这种类型是我在博客上复制的。从其他网站复制代码时要小心)

首先,您是否尝试过composer dump autoload?@Roadirsh是的,我尝试过)jwt.refresh的kernel.php中需要一个斜杠,但它不应该解决您的问题您使用哪个版本的jwt?我想如果您在内核文件中添加斜杠,如下面所示,Tymon\JWTAuth\Middleware\GetUserFromToken,它将解决问题。首先,您是否尝试过编写器转储自动加载?@Roadirsh是的,我尝试过)jwt.refresh需要在kernel.php中使用斜杠,但它不应该解决您的问题您使用哪个版本的jwt?我想如果您在内核文件中添加斜杠,如下面所示,Tymon\JWTAuth\Middleware\GetUserFromToken,这会解决问题。@sugana告诉过你要改变这个事实:o@Roadirsh看来我误解你了。如果你愿意,你可以写下来作为答案,我会投票并接受it@sugana我告诉过你要改变这一点:o@Roadirsh看来我误解你了。如果你愿意,你可以写下来作为答案,我会投票接受