Пользовательский провайдер Symfony - PullRequest
0 голосов
/ 18 сентября 2018

Я читаю, как Symfony управляет пользователями с помощью пользовательского провайдера: https://symfony.com/doc/current/security/custom_provider.html

Когда пользователь отправляет имя пользователя и пароль, уровень аутентификации просит настроенного провайдера пользователя:вернуть объект пользователя для данного имени пользователя.Затем Symfony проверяет, верен ли пароль этого пользователя, и генерирует маркер безопасности

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

public function loadUserByUsername($username)
{
    $client = new Client(['base_uri' => $uri]);
    $user_response = $client->get('api/v1/getTokens/', ['auth' => [$username, <passord>]);
    // $user_response 
}

И это сильно отличается от того, что ожидает Symfony, который должен получить объект пользователя, а затем выдать егособственные токены, если имя пользователя и пароль совпадают.

Должен ли я отказаться от всего интерфейса Custom Provider для моей собственной системы?

1 Ответ

0 голосов
/ 18 сентября 2018

Вам необходим AuthenticationProvider для использования в тандеме с UserProvider, который вы написали.

Проверьте также Guard Аутентификация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...