РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
595 of 1361 menu

Класс Passport

Класс Passport является центральным объектом в системе аутентификации Symfony. Он хранит информацию о пользователе (бейджи) и учётные данные (credentials), которые необходимы для проверки подлинности. Объект Passport создаётся внутри аутентификатора и возвращается из метода authenticate. Далее этот объект передаётся менеджеру аутентификации, который извлекает из него бейджи и выполняет проверки.

Синтаксис

use Symfony\Component\Security\Http\Authenticator\Passport\Passport; $passport = new Passport(UserBadge $userBadge, array $badges = []);

Пример

Давайте создадим объект Passport с бейджем пользователя и бейджем CSRF-токена:

<?php namespace App\Security; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Security\Http\Authenticator\Passport\Passport; use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge; use Symfony\Component\Security\Http\Authenticator\Passport\Badge\CsrfTokenBadge; class ApiAuthenticator { public function authenticate(Request $request): Passport { $userBadge = new UserBadge('abcde'); $csrfBadge = new CsrfTokenBadge('authenticate', 'abcde'); return new Passport($userBadge, [$csrfBadge]); } } ?>

В данном примере создаётся паспорт с идентификатором пользователя 'abcde' и бейджем CSRF-токена. Такой паспорт затем передаётся менеджеру безопасности для дальнейшей обработки.

Пример

Давайте проверим, содержит ли паспорт определённый бейдж:

<?php namespace App\Security; use Symfony\Component\Security\Http\Authenticator\Passport\Passport; use Symfony\Component\Security\Http\Authenticator\Passport\Badge\UserBadge; use Symfony\Component\Security\Http\Authenticator\Passport\Badge\RememberMeBadge; $userBadge = new UserBadge('user'); $rememberMeBadge = new RememberMeBadge(); $passport = new Passport($userBadge, [$rememberMeBadge]); $res = $passport->hasBadge(RememberMeBadge::class); echo $res ? 'true' : 'false'; ?>

Результат выполнения кода:

"true"

Метод hasBadge возвращает true, если бейдж указанного класса присутствует в паспорте, и false в противном случае.

Смотрите также

  • метод addBadge,
    который добавляет бейдж в паспорт
  • метод getBadge,
    который возвращает бейдж по классу
  • метод hasBadge,
    который проверяет наличие бейджа
  • класс UserBadge,
    который хранит идентификатор пользователя
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить