Symfony выходит из системы после 15 минут простоя - PullRequest
0 голосов
/ 02 июня 2018

Мое приложение Symfony (3.4.8), похоже, игнорирует любые попытки продлить сеанс.Как лучше всего решить эту проблему?Документация очень расплывчатая.

app / config / 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 голосов
/ 13 июня 2018

Судя по этому:

handler_id: session.handler.native_file

вы используете собственный обработчик сеанса.Из документации Symfony :

Так называемые собственные обработчики представляют собой обработчики сохранения, которые либо компилируются в PHP, либо предоставляются расширениями PHP, такими как PHP-Sqlite, PHP-Memcached ии т. д.

Все встроенные обработчики сохранения являются внутренними для PHP и поэтому не имеют открытого API. Они должны быть настроены с помощью директив php.ini , обычно это session.save_path и, возможно, других специфических для драйвера директив.

Проверка NativeFileSessionHandler Я не нашел методов, связанных с продолжительностью сеанса.Это приводит меня к выводу, что вы должны установить продолжительность на уровне PHP , а не на уровне Symfony.

Итак, попробуйте установить session.gc-maxlifetime(по вашему php.ini или по телефону ini_set) до 3600.

0 голосов
/ 13 июня 2018

ваши настройки выйдут из системы, если вы неактивны более 30 минут.

Вы можете добавить следующее в свой файл yml

#app/config/config.yml
session:
    cookie_lifetime: 86400
    gc_maxlifetime: 1800
    gc_probability: 1
    gc_divisor: 1
0 голосов
/ 12 июня 2018

Возможно, если вы попробуете это в вашей конфигурации: session: cookie_lifetime: 18000 gc_maxlifetime: 18000

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...