2016-11-17 3 views
0

Я настроил JWT (tymondesigns/jwt-auth) на моем приложении laravel 5.0.35. Аутентификация отлично работает. Но, когда я использую jwt.auth промежуточного программного есть ошибка: exception 'ReflectionException' with message 'Class Tymon\JWTAuth\MiddlewareGetUserFromToken does not exist'JWT, Laravel Класс 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' 
]; 

kernel.php

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" 
} 

}

+0

Во-первых, вы попробовали автомагнитолу композитора? – Roadirsh

+0

@Roadirsh да, я сделал) –

+0

Нужна косая черта в kernel.php для jwt.refresh, но не стоит исправлять вашу проблему – Roadirsh

ответ

3

Я нашел ошибку. Ошибка, где есть декларация промежуточного слоя в kernel.php

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

Таким образом, вместо MiddlewareGetUserFromToken должен быть Middleware\GetUserFromToken. Похоже, этот тип был в блоге, где я его скопировал. Будьте осторожны при копировании с других сайтов)

+0

@sugana сказал вам точно, чтобы изменить это: o – Roadirsh

+0

@Roadirsh выглядит так, как я вас неправильно понял. если вы хотите, вы можете написать как ответ, я подниму его и соглашусь –

+0

не волнуйся: P – Roadirsh

Смежные вопросы