[英]Symfony 4.2 can't Logout
我想在我的Symfony
项目上实现注销操作。
目前,当我进行注销操作时,我收到异常
controller can be blank: it will never be executed!.
我已经深入研究了互联网和 Symfony 文档,通常这个端点 controller 永远不会到达。
在我的上下文中,我无法注销,我不知道为什么执行此注销function。
这是我的配置SecurityController.php
/**
* @Route("/logout", name="app_logout", methods={"GET"})
*/
public function logout()
{
// controller can be blank: it will never be executed!
throw new \Exception('controller can be blank: it will never be executed!');
}
安全性.yaml
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: ~
pattern: /login
provider: app_user_provider
guard:
authenticators:
- App\Security\LoginFormAuthenticator
logout:
path: app_logout
# where to redirect after logout
target: app_login
祝你今天过得愉快!
您将注销侦听器放置在“主”防火墙中,但该模式未涵盖注销 url。 所以“/logout”的请求不会通过它运行。 您可以将注销侦听器放入覆盖注销 url 的防火墙中,或者修改“主”防火墙的模式以包含注销 url。 后者看起来像这样:
# config/packages/security.yaml
firewalls:
main:
# ...
pattern: ^/(login|logout)$
# ...
使用php bin/console debug:router
检查您的路线。
对我来说,首先调用的是在安全 controller 中创建的 security_logout。 我简单地从安全 controller 中删除了 function 并且它起作用了(也删除了注释)
我想对我的Symfony
项目实施注销操作。
此刻,当我执行注销操作时,我收到了异常
controller can be blank: it will never be executed!.
我已经深入研究了Internet和Symfony文档,通常永远不会到达此终结点控制器。
在我的上下文中,我无法注销,我也不知道为什么执行此注销功能。
这是我的配置SecurityController.php
/**
* @Route("/logout", name="app_logout", methods={"GET"})
*/
public function logout()
{
// controller can be blank: it will never be executed!
throw new \Exception('controller can be blank: it will never be executed!');
}
security.yaml
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
anonymous: ~
pattern: /login
provider: app_user_provider
guard:
authenticators:
- App\Security\LoginFormAuthenticator
logout:
path: app_logout
# where to redirect after logout
target: app_login
祝你今天过得愉快!
阅读文档。
要启用注销,请激活防火墙下的注销配置参数。
# config/packages/security.yaml
firewalls:
main:
# ...
logout:
path: app_logout
# where to redirect after logout
# target: app_any_route
接下来,您需要为此 URL 创建路由(但不是控制器)。
# config/routes.yaml
app_logout:
path: /logout
methods: GET
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.