【问题标题】:How to redirect to home page after logout?注销后如何重定向到主页?
【发布时间】:2015-08-09 04:19:26
【问题描述】:

我在 symfony 上提供了一个预构建项目,其中注销会话重定向到登录屏幕,但现在我希望该页面重定向到主页上。我在编码文件中发现的是这样的:

在基础树枝文件中:

<a href="{{path('log_out')}}"><i class="icon-key"></i> Log Out</a>

在routing.yml中

#Route for logout page.
log_out:
    pattern: /bid/logout

【问题讨论】:

    标签: php symfony symfony-security


    【解决方案1】:

    通常它会重定向到主页。检查你的 security.yml 配置文件。

    firewalls:        
        default:            
            logout:
                path:   /logout
                target: / #This is home url
    

    【讨论】:

    • 我的目标 id 空白...即/
    【解决方案2】:

    在 Symfony 4 上,默认情况下,注销操作重定向到 / 路径。您可以通过在 security.yml 配置文件中设置适当的配置参数来更改默认行为。

    security:
        ...
        firewalls:
            ...
            main:
                ...
                logout:
                    ...
                    target: app_login # you can specify a hard coded URL path or a route name
    

    【讨论】:

      【解决方案3】:

      以我的拙见,最简单的方法是简单地在您的 logoutAction 中进行重定向(因此在您的控制器中),如下所示:

      public function myLogoutAction()
      {
          // Your logout logic
          return $this->redirect($this->generateUrl('my_route'));
      }
      

      【讨论】:

      • 我通过将模式更改为 /home 使其工作。但我想知道这样做是否正确?
      • 如果你把pattern改成/home,你会到首页,但是你不会调用你的logoutAction,这也是我相信想要的。所以不,这不是做到这一点的好方法。如果您想在不注销的情况下进行重定向,请不要更改模式,但要更改链接中的 href。
      • 我在控制器的注销功能中发现了这个:public function logoutAction() { throw new \RuntimeException('Please Configure the logout in your security setting.'); }这里如何编辑链接?
      • 不要混淆:要么你改变你的基本树枝文件链接中的href,你放的第一段代码(但你不会有一个真正的注销,只是一个重定向) , 或者你把我的回答放在你行动的最后。但那是在猜测你写了一个 logoutAction。从您发布的异常中看来,根本没有配置注销操作,因此如果您想真正注销,则必须这样做(并且如果您像您所说的那样是新手,那将并不容易)
      猜你喜欢
      • 2019-07-02
      • 2014-02-10
      • 2021-10-18
      • 2017-08-22
      • 2020-04-16
      • 1970-01-01
      • 2011-07-08
      • 2014-08-16
      • 2010-11-19
      相关资源
      最近更新 更多