Я использую JWT Bundle с SF4 + apache + PG SQL. У меня есть API и проверка входа. Попытка отправить POST-запрос с правильными учетными данными дает мне 200 OK. Попытка отправить POST-запрос с неверными учетными данными дает ВСЕГДА 401 неверных учетных данных и никогда go в моем коде, который должен ответить 422. В этом случае
Вот код:
/**
* @Route("/api/login_check")
* @param Request $request
* @param JWTTokenManagerInterface $JWTManager
* @param UserPasswordEncoderInterface $encoder
* @return JsonResponse
*/
public function getTokenUser(Request $request, JWTTokenManagerInterface $JWTManager, UserPasswordEncoderInterface $encoder) {
$request = $this->transformJsonBody($request);
$username = $request->get('username');
$password = $request->get('password');
if (empty($username) || empty($password)) {
return $this->respondValidationError("Invalid username or password");
}
$em = $this->getDoctrine()->getManager();
/* @var $user User */
$user = $em->getRepository(User::class)->findOneBy([
'username' =>$username,
]);
if (!$user) {
//returns 422
return $this->respondValidationError("User with these credentials not found");
}
if ($user->getPassword() !== $encoder->encodePassword($user, $password)) {
//returns 422
return $this->respondValidationError("User with these credentials not found");
}
return new JsonResponse(['test' => $JWTManager->create($user)]);
}
Если учетные данные неверны Я никогда не получаю в эту функцию, почему?
Вот защита:
security:
encoders:
App\Entity\User:
algorithm: bcrypt
app_user_provider:
entity:
class: App\Entity\User
property: username
firewalls:
login:
pattern: ^/api/login
stateless: true
anonymous: true
json_login:
check_path: /api/login_check
success_handler: lexik_jwt_authentication.handler.authentication_success
failure_handler: lexik_jwt_authentication.handler.authentication_failure
api:
pattern: ^/api
stateless: true
provider: app_user_provider
guard:
authenticators:
- lexik_jwt_authentication.jwt_token_authenticator
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: lazy
provider: app_user_provider
access_control:
- { path: ^/register, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/api/login_check, roles: IS_AUTHENTICATED_ANONYMOUSLY}
- { path: ^/api, roles: IS_AUTHENTICATED_FULLY }
Я пытался изменить apache config, security.yml config firewall, ничего не получалось. Пожалуйста, помогите