Я использую 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();
Вот изображение запроса в Почтальоне:
Все работало хорошо, прежде чем я ввел JWT в приложение.В чем может быть проблема?