Я пытаюсь использовать новый компонент Guard . Единственная информация, которую я нашел об этом, – это официальные документы .
В примере из документов используется Guard для аутентификации запросов API.
Согласно документам, он может также использоваться с обычной формой входа, что я хочу сделать.
Я скопировал этот пример и заменил две функции:
public function getCredentials(Request $request) { return array( 'username' => $request->request->get('_username'), 'password' => $request->request->get('_password'), ); } public function getUser($credentials, UserProviderInterface $userProvider) { $email = $credentials['username']; $user = $this->em->getRepository('Entity\User') ->findOneBy(array('email' => $email)); return $user; }
security.yml:
providers: user_provider: entity: class: Entity\User property: email firewalls: user: switch_user: { role: ROLE_ADMIN } pattern: ^/ anonymous: ~ provider: user_provider form_login: check_path: login_check login_path: login logout: path: logout target: login guard: authenticators: - app.ldap.authenticator stateless: false
Проблема в том, что Symfony не поддерживает мой сеанс.
Я вошел в систему, только если я отправлю форму данных для каждого запроса. Можно ли отправить эти данные один раз, как обычная форма входа?
Я нашел это. Я был в security.yml
always_authenticate_before_granting: true
скопирован из другого проекта :). Я удалил его, и теперь он работает