Uncaught TypeError при доступе к маршруту с авторизацией JWT - PullRequest
0 голосов
/ 14 октября 2018

Я использую slim-jwt-auth для защиты REST API, написанного на Slim , но когда я пытаюсь получить доступ к защищенному маршруту, я получаю эту ошибку:

Fatalошибка: Uncaught TypeError: fread () ожидает, что параметр 2 будет целочисленным, строка указана в / Applications / XAMPP / xamppfiles / htdocs / app / vendor / zendframework /zend-diactoros/src/Stream.php:277

Вот так выглядит мой index.php :

use App\Controllers;

require __DIR__ . '/../src/bootstrap.php';

$configuration = [
    'settings' => [
        'displayErrorDetails' => true,
        'jwt' => [
            'secret' => $_ENV['JWT_SECRET']
        ]
    ],
    'environment' => function () {
        $scriptName = $_SERVER['SCRIPT_NAME'];
        $_SERVER['SCRIPT_NAME'] = dirname(dirname($scriptName)) . '/' . basename($scriptName);
        return new Slim\Http\Environment($_SERVER);
    }
];
$c = new \Slim\Container($configuration);
$app = new \Slim\App($c);

$app->add(new \Tuupola\Middleware\JwtAuthentication([
    'path' => '/users',
    'attribute' => 'decoded_token_data',
    'secret' => $configuration['settings']['jwt']['secret'],
    'algorithm' => ['HS256'],
    'error' => function ($response, $arguments) {
        $data['status'] = 'error';
        $data['message'] = $arguments['message'];
        return $response
            ->withHeader('Content-Type', 'application/json')
            ->getBody()->write(json_encode($data, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));
    }
]));

// Users
$app->get('/users', Controllers\UserController::getAll());
$app->get('/users/{username}', Controllers\UserController::getOne());
$app->post('/login', Controllers\UserController::login($_ENV['JWT_SECRET']));

$app->run();

Вот изображение запроса в Почтальоне:

request image

Все работало хорошо, прежде чем я ввел JWT в приложение.В чем может быть проблема?

...