IgorPI
@IgorPI

Symfony guard entry_point?

Коллеги, приветствую!

Проблема с авторизацией

firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        # Вызывается каждый раз, когда я запрашиваю /security.getAccessToken
        get_access_token:
            pattern: ^/security.getAccessToken
            guard:
                entry_point: App\Security\CreateAccessToken

        # Вызывается каждый раз, когда я запрашиваю /security.checkAccessToken
        check_access_token:
            pattern: ^/security.checkAccessToken
            guard:
                entry_point: App\Security\CheckAccessToken

        # Вызывается каждый раз, когда я запрашиваю любой другой роут
        main:
            guard:
                entry_point: App\Security\TokenAuthenticator


Symfony меня обязывает возвращать Response объект из метода start
class TokenAuthenticator implements AuthenticationEntryPointInterface
{
...
/**
     * @param Request $request
     * @param AuthenticationException|null $authException
     * @return Response
     * @throws EAuthorisationError
     * @throws ExceptionInvalidRequest
     */
    public function start(Request $request, AuthenticationException $authException = null)
    {
        if (!$this->supports($request)) {
            throw new ExceptionInvalidRequest("Требуется параметр [token]!", $request);
        }

        $credentials = $this->getCredentials($request);

        if ($this->verification($credentials["token"])) {
            return new Response(params);
        }

        throw new EAuthorisationError("Token is not valid!");
    }


Но мне нужно продолжать запрос, где я ошибаюсь?
Спасибо!
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
BoShurik
@BoShurik Куратор тега Symfony
Symfony developer
https://symfony.com/doc/current/security/multiple_...
firewalls:
    main:
        guard:
            authenticators: 
                - App\Security\TokenAuthenticator

entry_point - используется для начала процесса аутентификации. В вашем случае он не нужен, т.к. у вас api
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы