【问题标题】:Symfony session, different route, different sessionSymfony 会话,不同的路由,不同的会话
【发布时间】:2014-04-15 13:23:16
【问题描述】:

所以,我的项目有两条不同的路线:

/memberarea
/mobile

第一个是我的应用程序的网页版,第二个是移动版。

在这里你可以看到我的 security.yml 的一部分:

firewalls:
    main:
        pattern: ^/
        form_login:
            login_path: /
            provider: fos_userbundle
            csrf_provider: form.csrf_provider
            default_target_path: /memberarea
        logout:       true
        anonymous:    true
    mobile:
        pattern: /mobile/.*
        logout:       true
        anonymous:    true

access_control:
    - { path: ^/memberarea, roles: IS_AUTHENTICATED_FULLY }
    - { path: ^/mobile, roles: IS_AUTHENTICATED_FULLY }

我的问题,当用户在手机上登录时,我在 symfony 上创建了一个带有防火墙 mobile 的会话,例如:$token = new UsernamePasswordToken($user, $request->get('password'), "mobile", $user->getRoles());.....

这个用户可以使用/mobile中的所有路由,没关系。但他也可以使用/memberarea。 我该如何为/mobile/memberarea 或两者都登录用户?

【问题讨论】:

    标签: php session symfony


    【解决方案1】:

    如果我的理解正确,您希望使用与 Web 应用程序不同的会话登录您的移动应用程序。

    为了获得这个结果,我正在做的是在我的 security.yml 文件中为我拥有的每个防火墙设置不同的上下文。

    (如果您想为两者创建一个会话,则必须为给定的防火墙提供具有相同值的上下文。)

    文件:app/config/security.yml

    firewalls:
      main:
          pattern: ^/
          **context: user**
          form_login:
              login_path: /
              provider: fos_userbundle
              csrf_provider: form.csrf_provider
              default_target_path: /memberarea
          logout:       true
          anonymous:    true
      mobile:
          pattern: /mobile/.*
          *context: mobile_user*
          logout:       true
          anonymous:    true
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-01-04
      • 2012-01-30
      • 2015-09-23
      • 2021-08-11
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多