У меня проблема с Symfony 3.3.9. Иногда, не всегда, когда пользователь входит в систему с правильным именем пользователя и паролем, он перенаправляется на главную страницу, как и должен, но затем возвращается на страницу входа.
Я знаю, что пользователь вошел в систему, потому что я могу получить информацию о пользователе с помощью ветки со страницы входа в систему.
Это действительно странно, потому что это не происходит постоянно. Это кажется случайным и трудно воспроизвести.
Я изучал этот вопрос несколько дней и не могу понять, почему это происходит. Ищу несколько предложений.
Спасибо.
Редактировать-1 добавлен код
Edit-2
Когда меня перенаправили на страницу входа, я попытался ввести URL главной страницы, чтобы перейти туда вручную. Это не работает, даже если я вошел в систему. Однако, если я подожду минуту или около того, это сработает.
Я использую пользовательский пакет FOS
вот мой config.yml
# fos bundle
fos_user:
db_driver: orm
firewall_name: main
user_class: Acme\Entity\User
вот мой security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy:
ROLE_EMPLOYEE: [ROLE_USER]
ROLE_MANAGER: [ROLE_EMPLOYEE]
ROLE_ADMIN: [ROLE_MANAGER]
ROLE_SUPER_ADMIN: [ROLE_ADMIN,ROLE_ALLOWED_TO_SWITCH]
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
always_use_default_target_path: true
default_target_path: after_login
# if you are using Symfony < 2.8, use the following config instead:
# csrf_provider: form.csrf_provider
logout: true
anonymous: true
switch_user: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/administration/roe, role: ROLE_ADMIN }
- { path: ^/administration/generateaccessemployees, role: ROLE_ADMIN }
- { path: ^/administration/location, role: ROLE_ADMIN }
- { path: ^/administration/payroll/closepp, role: ROLE_ADMIN }
- { path: ^/administration/t4, role: ROLE_ADMIN }
- { path: ^/administration/eft, role: ROLE_ADMIN }
- { path: ^/administration/stubmessage, role: ROLE_ADMIN }
- { path: ^/administration/payroll_reminder, role: ROLE_ADMIN }
- { path: ^/administration, role: ROLE_MANAGER }
- { path: ^/admin/exit_impersonation, role: ROLE_PREVIOUS_ADMIN }
- { path: ^/admin, role: ROLE_SUPER_ADMIN }
В моем login_content.html.twig я могу видеть:
{{ app.user.username }}