токена?
https://github.com/lexik/LexikJWTAuthenticationBundle
Прошу помощи, найти проблему и возможное решение. Я даже не знаю как проблему правильно описать, потому что она очень странная. Написал API доступ идёт по токену, всё хорошо. Но:
Тестировал API через Insomnia. Можно зарегистрироваться по роуту для регистрации. Можео залогиниться, получаешь токен, если данные верные, можно передать Bearer Token для другого роута, чтобы проверить, установлено ли соединение.
Проблема: в моём роуте для логина, Insomnia абсолютно игнорирует всё, что происходит в моём loginAction. То есть, валидация реквеста через DTO и Asserts, даже примитивный dump('test'); die; игнорирует. Как-будто всё проходит в другом месте. Хотя если передать в реквест пустой JSON или неправильные данные, то выходит ошибка, как и должно быть. Полагаю, что это случается где-то в бандле.
Затем тестировал API через Postman. Он прекрасно видит всё, что написано в loginAction, все дампы, все валидации, но! Он пропускает пустой JSON, вообще POST-запрос без JSON или неверные данные, но всё вовзвращает токен (???). К счастью, этот токен нельзя нигде использовать, он не валидный. Но если логиниться с верными данными то токен всё равно генерируется и всё равно не валидный.
Я даже не знаю, что делать, как тестировать и чему верить :(
Кэш чистил везде, где только можно, удалял и переустанавливал Docker контейнеры, всё так же. Код на гисте выложил ниже:
https://gist.github.com/MyZik/da780e10a6059a397d8159925efc0b4d
Нашёл проблему: Postman отправляет в Header: Content-Type: text/plain Insomnia отправляет в Header: Content-Type: application/json Если отправлять text/plain, то обработку берёт на себя мой контроллер, где я могу уже кастомизировать поведение метода, про при этом в конце всё равно будет генерироваться токен, хоть и не валидный, но всё равно так не должно быть. Если отправлять application/json, то обработка проходит в бандле, но всё, что внутри моего loginAction будет проигнорировано. Есть ли у кого идеи, как это можно изменить?
Обсуждают сегодня