Ответ 1
вам необходимо реализовать собственный поставщик проверки подлинности, как описано в: http://symfony.com/doc/current/cookbook/security/custom_authentication_provider.html
Я не могу сказать вам, что лучший способ, но только для того, чтобы помочь вам начать: Вы создаете прослушиватель, токен, провайдер и factory.
Метод tryAuthentication слушателя принимает учетные данные, предоставленные пользователем, и создает новый токен с этим входом. В конце метода вы добавите: return $this- > authenticationManager- > authenticate ($ token);
Ваш провайдер будет использовать этот токен в методе проверки подлинности для отправки запроса API.
Для несуществующих пользователей у вас есть два варианта: - создать пользователя в методе проверки подлинности после вызова API и после того, как вы проверите, существует ли он, который, по моему мнению, НЕ является для них способом - создайте свой собственный обработчик ошибок аутентификации, который похож на https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Security/Http/Authentication/DefaultAuthenticationFailureHandler.php, но в верхней части метода onAuthenticationFailure, который вы добавляете if ($ exception instanceof UsernameNotFoundException && (null! == $token = $exception- > getToken()) && $токен экземпляра YourWordnikToken) { // создаем этого пользователя здесь }
Это просто основная идея, как это работает... Я на IRC с прозвищем hacfi - сообщите мне, если вам нужно дальнейшее руководство