Symfony2 два метода аутентификации для одного API

Есть ли возможность сделать двухфакторную аутентификацию в Symfony 2 для REST API?

Я хотел бы добиться чего-то вроде этого:

  1. Пользователь в конечной точке (мобильное приложение) динамически готовит логин и пароль (по некоторому алгоритму)
  2. Пользователь в конечной точке запрашивает интерфейс API, например / api / me? Access_token = [ACEESTOKEN]
  3. Чтобы продолжить, пользователь должен передать созданный логин и пароль для Basic Auth.
  4. Symfony2 подготавливает логин и пароль так же, как мобильное приложение, и сравнивает их с теми, что отправлены из мобильного приложения.
  5. Если все в порядке, Symfony2 проверяет access_token (OAuth2 реализован с помощью FOSOAuthServerBundle). Если все в порядке, провайдер получает объект User на основе токена доступа, пользователь проходит проверку подлинности и может получить доступ к api / me

3

Решение

Вы можете создать / добавить несколько провайдеров аутентификации, и менеджер аутентификации Symfony проверит каждого провайдера аутентификации.

«AuthenticationProviderInterface требует наличия метода аутентификации на токене пользователя и метода поддержки, который сообщает менеджеру аутентификации, использовать этот провайдер для данного токена или нет. В случае нескольких провайдеров менеджер аутентификации затем перейдет к следующему провайдер в списке. «

пример

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]