Bonjour @tous

Comment empêcher l'User de se déconnecter tout le temps même plus de 30mn quand il qui quitte ou change l'onglet du navigateur.
J'utilise la techno symfony.

# see https://symfony.com/doc/current/reference/configuration/framework.html
framework:
    secret: '%env(APP_SECRET)%'
    #csrf_protection: true
    http_method_override: false
    messenger:
        transports:
            async: 'doctrine://default'

    # Enables session support. Note that the session will ONLY be started if you read or write from it.
    # Remove or comment this section to explicitly disable session support.
    session:
        enabled: true
        handler_id: null
        cookie_lifetime: 432000 # 5 jours en secondes
        cookie_secure: auto
        cookie_samesite: lax
        # storage_factory_id: session.storage.factory.native

Je veux que si mon utilisateur quitte le site sans déconnecter son compte pendant 5 jours, alors quand il revient, il doit rester connecter comme avant.

Actuellement, ce code ne résoud pas mon problème

Pour une demande d'aide svp.

5 réponses


Hello :)

Alors par défaut Symfony enregistre la session en fichier, il faudrait modifier la valeur handler_id pour enregistrer la session sur Redis, la database ou DynamoDB

Si tu es en SPA (front React par exemple) regarde si le site controle bien l'état de la session et pas seulement un état front

Je ne sais pas comment le faire, si vous pouvez m'aider un peu plus profonde car j'ai déjà modifié la valeur de handler_id plusieurs fois mais n'a aucun résultats.

Alors ce n'est pas automatique :p

Si tu as mis en valeur "Redis" il faut lancer un serveur Redis sur ta machine et connecter ton projet au serveur (pour vulgariser Redis c'est un serveur de cache) si tu as mis DynamoDB il faut créer un compte AWS et créer une table AWS, puis dans Symfony mettre les access

Le plus simple je pense ce serait d'utiliser un handler database, au moins c'est juste une table dans ta BDD, plus simple, par contre ça a l'air un peu long de configurer les sessions, tu peux suivre les étapes de la doc pour les databases:

https://symfony.com/doc/current/session.html#store-sessions-in-a-relational-database-mariadb-mysql-postgresql

Ok, Je vais le configurer et je vous informe quand il sera fini.

Merci pour votre support !

Salut, merci pour l'astuce ça m'aide aussi