Класс PasswordCredentials
Класс PasswordCredentials используется в компоненте Security
для передачи пароля и соли пользователя в процессе аутентификации.
Он реализует интерфейс CredentialsInterface и содержит
методы для получения пароля и соли. Объект этого класса обычно
создаётся в методе authenticate аутентификатора и
передаётся в Passport или используется для проверки
учетных данных.
Синтаксис
<?php
use Symfony\Component\Security\Http\Authenticator\Passport\Credentials\PasswordCredentials;
$credentials = new PasswordCredentials(string $password, ?string $salt = null);
?>
Пример
Давайте создадим объект PasswordCredentials
и передадим его в Passport:
<?php
namespace App\Security;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Http\Authenticator\Passport\Passport;
use Symfony\Component\Security\Http\Authenticator\Passport\Credentials\PasswordCredentials;
class ApiAuthenticator
{
public function authenticate(Request $request): Passport
{
$password = $request->request->get('password', '');
$credentials = new PasswordCredentials($password);
$passport = new Passport(
new \Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge('user'),
$credentials
);
return $passport;
}
}
?>
Пример
Давайте получим пароль и соль из объекта PasswordCredentials:
<?php
namespace App\Service;
use Symfony\Component\Security\Http\Authenticator\Passport\Credentials\PasswordCredentials;
class PasswordService
{
public function extractCredentials(): array
{
$credentials = new PasswordCredentials('abcde', 'somesalt');
return [
'password' => $credentials->getPassword(),
'salt' => $credentials->getSalt()
];
}
}
?>
Результат выполнения кода:
['password' => 'abcde', 'salt' => 'somesalt']
Смотрите также
-
класс
Passport,
который представляет собой паспорт аутентификации -
класс
UserBadge,
который идентифицирует пользователя по логину -
класс
AbstractAuthenticator,
который является базовым классом для аутентификаторов -
класс
PasswordUpgradeBadge,
который позволяет обновить хеш пароля