Symfony 4如何将匿名用户重定向回主页?
我使用json_登录作为登录表单,因此它是由ajax在模式上完成的,而不是实际的登录页面 在尝试访问受限url时,如何将用户重定向回base/,而不是显示403拒绝访问页面Symfony 4如何将匿名用户重定向回主页?,symfony,symfony4,Symfony,Symfony4,我使用json_登录作为登录表单,因此它是由ajax在模式上完成的,而不是实际的登录页面 在尝试访问受限url时,如何将用户重定向回base/,而不是显示403拒绝访问页面 编辑:我想说的是,用户使用json_登录登录,这很好。但是,如果我注销并尝试以匿名用户身份访问安全区域,它只会显示一个拒绝访问的页面,我需要它不显示该页面并重定向到主页 所以,如果我是匿名用户,并且我试图访问一个安全区域,比如/admin,那么我得到的只是一个可怕的拒绝访问页面。我想把它重定向到主页,不管用户是以没有正确权限
编辑:我想说的是,用户使用json_登录登录,这很好。但是,如果我注销并尝试以匿名用户身份访问安全区域,它只会显示一个拒绝访问的页面,我需要它不显示该页面并重定向到主页 所以,如果我是匿名用户,并且我试图访问一个安全区域,比如/admin,那么我得到的只是一个可怕的拒绝访问页面。我想把它重定向到主页,不管用户是以没有正确权限的用户身份登录的,还是匿名用户试图访问受限区域——而不仅仅是将他们留在一个死访问拒绝页面上 我找不到任何解释如何做到这一点的东西,访问被拒绝的url不适用于匿名用户 这是我的安全。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
当您从ajax请求获得响应时,可以使用javascript执行此操作,例如:
窗口。位置。替换(“”) 你读了吗?@ehymel是的,但它没有说我想要什么。我想说的是,用户使用json_登录登录,这很好。但是如果我注销并尝试以匿名用户的身份访问安全区域,它只会显示一个拒绝访问的页面,我需要它不显示该页面并重定向到主页。我要说的是,用户使用json_登录登录,这一切都很好。但是,如果我注销并尝试以匿名用户身份访问安全区域,它只会显示一个拒绝访问的页面,我需要它不显示该页面并重定向到主页。