【问题标题】:Symfony store url parameters in sessions会话中的 Symfony 存储 url 参数
【发布时间】:2016-03-22 13:46:58
【问题描述】:

在 symfony 项目中访问消息页面如下。

  function messageNavigate(hotelid) {
             window.open('message/'+senderid+'','_blank')
  }

这里是检查用户是否登录。如果没有,用户重定向到登录页面。我的问题是如何在使用先前选择的 itemid 登录消息页面后重定向他。

routing.yml

message:
    path:     /message/{itemid}
    defaults: { _controller: TestBundle:Message:message }   

login:
    path:     /login
    defaults: { _controller: TestBundle:Security:login}  

安全性.yml

firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false  
    main:
        anonymous: ~
        pattern:    ^/
        form_login:
            login_path: /login
            check_path: /login
            default_target_path: /message/{itemid}
        provider: our_db_provider
        logout:
            path:   logout
            target: /login

【问题讨论】:

    标签: symfony session url get parameter-passing


    【解决方案1】:

    不要手动检查用户登录信息并重定向到登录页面,而是在消息控制器中执行以下操作:

    $this->denyAccessUnlessGranted('ROLE_USER');
    

    如果用户未登录,这将重定向到登录页面。它还会在用户提交登录表单后重定向回原始路线。

    或者,您可以在会话中设置此属性:

    _security.main.target_path
    

    到您希望用户在登录后被重定向到的 URI。

    【讨论】:

      猜你喜欢
      • 2021-10-23
      • 2017-06-21
      • 2012-06-16
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      • 2012-10-18
      相关资源
      最近更新 更多