Php Symfony 4,在匿名用户和会话因不活动而终止的用户之间进行标识

Php Symfony 4,在匿名用户和会话因不活动而终止的用户之间进行标识,php,symfony,symfony4,Php,Symfony,Symfony4,是否有办法确定用户是完全匿名的,还是由于控制器不活动而导致会话过期的用户。 我尝试了$this->get('session')但发现它不是很可靠 有益的观点 用户尚未选择“记住我” 用户在一段时间不活动后已自动注销 我的目标是确定当前用户是否可能因为不活动而注销,或者仅仅是一个纯粹的匿名用户 我的security.yaml文件 security: encoders: App\Entity\MoUser: algorithm: bcrypt # https://symf

是否有办法确定用户是完全匿名的,还是由于控制器不活动而导致会话过期的用户。 我尝试了
$this->get('session')但发现它不是很可靠

有益的观点

  • 用户尚未选择“记住我”

  • 用户在一段时间不活动后已自动注销

我的目标是确定当前用户是否可能因为不活动而注销,或者仅仅是一个纯粹的匿名用户

我的security.yaml文件

security:
encoders:
    App\Entity\MoUser:
        algorithm: bcrypt
# https://symfony.com/doc/current/security.html#where-do-users-come-from-user-providers
providers:

    our_db_provider:
        entity:
            class: App\Entity\MoUser
            property: email
firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false
    main:
        anonymous: ~
        provider: our_db_provider
        simple_form:
            authenticator: App\Security\OfmAuthenticator
            check_path: app_security_login
            login_path: app_security_login
            always_use_default_target_path: true
            default_target_path: /
            csrf_token_generator: security.csrf.token_manager
        remember_me:
            secret: '%kernel.secret%'
            lifetime: 604800 #1 week in seconds
            path: /
        logout:
            path: /logout
            target: /login

我认为这不可能仅通过会话实现:如果会话由于超时而被终止,则完全没有更多可用信息,因为会话显然已被终止;)


您可以尝试使用类似“记住我”的cookie(有关该功能,请参阅)。即使会话过期,cookie也可以活得更长,并且可以帮助用户再次登录,而无需询问凭据

我认为仅通过会话是不可能的:如果会话因超时而终止,则完全没有更多可用信息,因为会话显然已终止;)


您可以尝试使用类似“记住我”的cookie(有关该功能,请参阅)。即使会话过期,cookie也可以使用更长的时间,并且可以帮助用户再次登录,而无需询问凭据

您能否向我们提供有关您的安全性的更多详细信息。yaml防火墙配置以及您希望实现的具体目标?感谢您的回答,我已经在我的帖子中添加了我的security.yaml。您可以给我们更多关于security.yaml防火墙配置的详细信息,以及您想要实现的具体目标吗?谢谢您的回答,我已经在我的帖子中添加了我的security.yaml