Я использую token_handler для проверки токена. Но мне это не нужно для маршрутов PUBLIC_ACCESS. Дело в том, что он срабатывает до access_control.
Могу ли я сначала каким-то образом проверить наличие PUBLIC_ACCESS? Или есть лучший способ избежать использования этого token_handler в общедоступных маршрутах? Каков наилучший способ? (Symfony 7)
# AccessTokenHandler.php
readonly class AccessTokenHandler implements AccessTokenHandlerInterface
{
public function __construct(private ApiTokenRepository $repository)
{
}
public function getUserBadgeFrom(string $accessToken): UserBadge
{
$accessToken = $this->repository->findOneByValue($accessToken);
if (is_null($accessToken) || !$accessToken->isValid()) {
throw new BadCredentialsException('Invalid credentials.');
}
return new UserBadge($accessToken->getUser()->getUserIdentifier());
}
}
# security.yaml
firewalls:
main:
json_login:
check_path: sign_in
username_path: email
password_path: password
access_token:
token_handler: App\Security\AccessTokenHandler
access_control:
- { path: ^/auth, roles: PUBLIC_ACCESS }
- { path: ^/*, roles: ROLE_USER }
Подробнее здесь: https://stackoverflow.com/questions/790 ... t-is-the-b