Я хочу перенаправить обратно на запрашиваемую страницу после входа в систему, я знаю, что Symfony обеспечивает это по умолчанию, но в моем случае это не работает. Я пробовал с referer: true
в security.yml но не получил никакого результата.
Я использую FOSUserBundle для управления пользователями.
Ваша помощь будет оценена, спасибо заранее.
security.yml
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
Admin\UserBundle\Entity\SuperAdmin: bcrypt
role_hierarchy:
ROLE_DEFAULT: ROLE_DEFAULT
ROLE_SUPER_ADMIN: ROLE_SUPER_ADMIN
providers:
in_memory:
memory: ~
fos_userbundle:
id: fos_user.user_provider.username_email
administrators:
entity: { class: Admin\UserBundle\Entity\SuperAdmin, property: email}
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
social:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
login_path: fos_user_security_login
check_path: fos_user_security_check
default_target_path: user_bundle_homepage
success_handler: my.authentication_success_handler
logout:
path: fos_user_security_logout
target: fos_user_security_login
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
- { path: ^/login/facebook$, role: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
- { path: ^/login/google$, role: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
- { path: ^/admin0rama/.*, role: ROLE_SUPER_ADMIN, requires_channel: https}
- { path: ^/.*, role: ROLE_DEFAULT, requires_channel: https}
Я думаю, вы должны использовать use_referer: true
в вашем определении брандмауэра (не только referer
).
Пример:
# security.yaml
security:
firewalls:
social:
form_login:
use_referer: true
Можете ли вы попробовать с _target_path, вы можете добавить это поле в форму входа, это всегда работает для меня в моих проектах
{% if app.request.get('_route') != app.request.headers.get('referer') %}
<input type="hidden" name="_target_path" value="{{ app.request.headers.get('referer') }}" />
{% endif %}
Я надеюсь это тебе поможет