Symfony在空闲15分钟后注销
我的symfony应用程序(3.4.8)似乎忽略了任何延长会话的尝试。解决此问题的最佳措施是什么?文件很模糊 app/config/security.ymlSymfony在空闲15分钟后注销,symfony,Symfony,我的symfony应用程序(3.4.8)似乎忽略了任何延长会话的尝试。解决此问题的最佳措施是什么?文件很模糊 app/config/security.yml security: encoders: FOS\UserBundle\Model\UserInterface: bcrypt providers: fos_userbundle: id: fos_user.user_provider.username
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: ~
如果您在配置中尝试此操作:
会议:
cookie_寿命:18000
gc_最大寿命:18000
希望有帮助 由此判断:
handler\u id:session.handler.native\u文件
您正在使用本机会话处理程序。来自Symfony:
所谓的本机处理程序,是编译成PHP或由PHP扩展(如PHP Sqlite、PHP Memcached等)提供的保存处理程序
所有本机存储处理程序都是PHP内部的,因此没有面向公共的API它们必须由php.ini指令配置,通常是session.save\u路径和其他特定于驱动程序的指令
检查会话时,我没有发现与会话持续时间相关的方法。这让我得出结论,您必须在PHP级别设置持续时间,而不是在Symfony级别
因此,请尝试将(在您的
php.ini
或调用中)设置为3600。如果您处于非活动状态超过30分钟,您的设置将注销
您可以在yml文件中添加以下内容
#app/config/config.yml
session:
cookie_lifetime: 86400
gc_maxlifetime: 1800
gc_probability: 1
gc_divisor: 1
你的要求是什么?禁用注销?或者将注销时间从15分钟增加到60分钟?例如,可以将其更改为60分钟而不是15分钟。文档中的内容似乎都被忽略了。请尝试将
记住我:生存期
和会话:cookie\u生存期
的值变大。我试过了,但没有成功。该值被完全忽略。@user1029829请检查浏览器是否接受cookie,并且该cookie的值是否为非空。然后提供访问控制部分。并检查其他答案。它们可能会有帮助。