Я использую json_login для формы входа в систему, так что это делается с помощью ajax на модальной, а не на реальной странице входа.
Вместо отображения страницы с отказом в доступе 403 при попытке получить доступ к ограниченному URL, какМогу ли я перенаправить пользователя обратно на базу /?
РЕДАКТИРОВАТЬ: я говорю, что пользователь входит в систему с json_login, что все в порядке.Но если я вышел из системы и попытался получить доступ к защищенной области как анонимный пользователь, он просто показывает страницу «Отказано в доступе», мне нужно, чтобы она не отображалась и перенаправляла на домашнюю страницу.
Так что, если я являюсь анонимным пользователем и пытаюсь получить доступ к защищенной области, такой как / admin, все, что я получаю, - это ужасная страница с отказом в доступе.Я хочу, чтобы он просто перенаправлял на домашнюю страницу, независимо от того, вошел ли пользователь в систему как пользователь без правильных разрешений или анонимный пользователь пытается получить доступ к закрытой области, а не просто оставить их на странице запрещенного доступа.
Я не могу найти ничего, что объясняет, как это сделать, access_denied_url не работает для анонимных пользователей.
ЗДЕСЬ МОЙ security.yaml:
security:
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
access_denied_url: /
providers:
# used to reload user from session & other features (e.g. switch_user)
chain_provider:
chain:
providers: [app_user_username, app_user_email]
app_user_username:
entity:
class: App\Entity\User
property: username
app_user_email:
entity:
class: App\Entity\User
property: email
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: ~
user_checker: App\Security\LoginChecker
provider: chain_provider
json_login:
check_path: /login
logout:
path: /logout
target: /
# activate different ways to authenticate
# http_basic: true
# https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate
# form_login: true
# https://symfony.com/doc/current/security/form_login_setup.html
# Easy way to control access for large sections of your site
# Note: Only the *first* access control that matches will be used
access_control:
- {path: ^/extranet/.*, roles: [ROLE_CLIENT,ROLE_DELTA]}
- {path: ^/customer/^register, roles: [ROLE_CUSTOMER]}
- {path: ^/account/.*, roles: [ROLE_CUSTOMER,ROLE_DELTA,ROLE_CLIENT]}
- {path: ^/vehicles/auction/bid/[0-9]*, roles: [ROLE_CUSTOMER]}
- {path: ^/vehciles/auction/buy/[0-9]*, roles: [ROLE_CUSTOMER]}
- {path: ^/.*, roles: IS_AUTHENTICATED_ANONYMOUSLY}
# - { path: ^/admin, roles: ROLE_ADMIN }
# - { path: ^/profile, roles: ROLE_USER }
encoders:
App\Entity\User:
algorithm: bcrypt
cost: 15