我在security.yml中添加了此选项,位于防火墙设置下:
use_referer: true
现在,我创建了一个用于确认电子邮件的链接。当我处于开发模式时,如果我点击链接并且没有登录到应用程序,我进入登录页面,然后在登录后我转到电子邮件确认链接。但是在生产模式下,这在登录后无效。它也将我重定向到默认目标路径。
这是security.yml:
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
my-login:
login_path: /
check_path: /login_check
default_target_path: /default_root
provider: my_provide
use_referer: true
编辑:更多信息
我创建了异常监听器,它检查响应并将用户重定向到登录页面(如果他/她未经过身份验证)。以前它只在生产模式下工作,我使它在开发模式下工作,现在referer也没有在开发模式下工作。
通过为此特定路由传递异常侦听器,我有什么方法可以。?
答案 0 :(得分:0)
我自己找到了答案.. :)
我刚从检查异常监听器中跳过了该特定路径。
$path = $event->getRequest()->getPathInfo();
if($this->container->get('security.context')->isGranted('IS_AUTHENTICATED_FULLY') == false) {
if($path == "my/path") {
// simply redirect to login page without clearing session and cookies
} else {
// clear session and redirect to login page so that referer does not contain any data
}
}