我的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: ~
答案 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