Класс UserBadge
Класс UserBadge представляет собой бейдж паспорта,
который хранит идентификатор пользователя (обычно email
или логин). Бейдж добавляется в паспорт аутентификации,
после чего UserProvider загружает сущность
пользователя по этому идентификатору. Первым параметром
передаётся идентификатор пользователя, вторым - опциональный
callable для загрузки пользователя, третьим - имя провайдера.
Синтаксис
new UserBadge(string $userIdentifier, ?callable $userLoader = null, ?string $providerName = null)
Пример
Давайте создадим бейдж с идентификатором пользователя
'user' и добавим его в паспорт:
<?php
namespace App\Security;
use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport;
class ApiAuthenticator
{
public function authenticate(): SelfValidatingPassport
{
$badge = new UserBadge('user');
return new SelfValidatingPassport($badge);
}
}
?>
Пример
Давайте передадим вторым параметром callable, который вернёт объект пользователя:
<?php
namespace App\Security;
use App\Entity\User;
use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport;
class ApiAuthenticator
{
public function authenticate(): SelfValidatingPassport
{
$badge = new UserBadge('user', function (string $identifier): User {
$user = new User();
$user->setEmail($identifier);
return $user;
});
return new SelfValidatingPassport($badge);
}
}
?>
Пример
Давайте укажем третьим параметром имя провайдера
'app_user_provider':
<?php
namespace App\Security;
use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge;
use Symfony\Component\Security\Http\Authenticator\Passport\SelfValidatingPassport;
class ApiAuthenticator
{
public function authenticate(): SelfValidatingPassport
{
$badge = new UserBadge(
'user',
null,
'app_user_provider'
);
return new SelfValidatingPassport($badge);
}
}
?>
Смотрите также
-
класс
Passport,
который хранит бейджи аутентификации -
класс
SelfValidatingPassport,
который принимает UserBadge без учётных данных -
класс
PasswordCredentials,
который хранит логин и пароль пользователя -
класс
UserProvider,
который загружает пользователя по идентификатору