0

我在 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

编辑:更多信息

我创建了异常侦听器,它检查响应并在用户未通过身份验证时将用户重定向到登录页面。以前它只在生产模式下工作,我让它在开发模式下工作,现在引用者也不能在开发模式下工作。

有什么方法可以绕过这条特定路线的异常侦听器。?

4

1 回答 1

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
      }
    }
于 2013-09-10T12:31:46.873 回答