Symfony在闲置15分钟后退出

时间:2018-06-01 23:17:01

标签: symfony

我的symfony应用程序(3.4.8)似乎忽略了任何延长会话的尝试。解决此问题的最佳做法是什么?文档很模糊。

应用程序/配置/ security.yml

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: bcrypt

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username


        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_token_generator: security.csrf.token_manager
                default_target_path: /


            logout:       true
            anonymous:    true
            remember_me:
                secret:   '%secret%'
                lifetime: 28000
                path:     /
            access_denied_handler: app.security.access_denied_handler

config.yml

framework:
    lock:   'semaphore'
    #esi:             ~
    #translator:      { fallbacks: ["%locale%"] }
    secret:          "%secret%"
    router:
        resource: "%kernel.root_dir%/config/routing.yml"
        strict_requirements: ~
    form:            ~
    csrf_protection: ~
    validation:      { enable_annotations: true }
    #serializer:      { enable_annotations: true }
    templating:
        engines: ['twig']
    default_locale:  "%locale%"
    trusted_hosts:   ~
    trusted_proxies: ~
    session:

        handler_id:  session.handler.native_file
        save_path:   "/tmp"
        cookie_lifetime: 28800
    fragments:       ~
    http_method_override: true
    assets: ~

3 个答案:

答案 0 :(得分:0)

也许如果您在配置中尝试此操作: session: cookie_lifetime: 18000 gc_maxlifetime: 18000

希望它有所帮助!

答案 1 :(得分:0)

判断:

<c:customLookup apiName="Contact" aditionalFields="Email"> <icon name="abc"/> this is my new list item {!contact.Email} </c:customLookup >

您正在使用原生会话处理程序。来自Symfony documentation

  

所谓的本机处理程序,是保存处理程序,可以编译成PHP或由PHP扩展提供,例如PHP-Sqlite,PHP-Memcached等。

     

所有本机保存处理程序都是PHP内部的,因此没有面向公众的API。 它们必须由php.ini指令配置,通常是session.save_path和其他可能的驱动程序特定指令。

检查NativeFileSessionHandler我发现没有与会话持续时间相关的方法。这使我得出结论,你必须在PHP级别上设置持续时间,而不是在Symfony级别。

因此,请尝试将session.gc-maxlifetime(在handler_id: session.handler.native_file或致电ini_set)设置为3600。

答案 2 :(得分:0)

如果您处于非活动状态超过30分钟,您的设置将会退出。

您可以在yml文件中添加以下内容

#app/config/config.yml
session:
    cookie_lifetime: 86400
    gc_maxlifetime: 1800
    gc_probability: 1
    gc_divisor: 1