Autour de Laravel

Variable de session() manquante sous firefox

Avatar de KYoann
KYoann

Bonjour à tous.

J'ai un souci assez pénible.

Mon application nécessite d'être connecter pour l'utiliser, donc la page par defaut est celle de connexion.

Une fois l'utilisateur connecté, j'ai besoin de sauvegarde en variable de session des informations nécessaire au fonctionnement de l'application.

Dans le menu principale de la page d'accueil, j'ai notamment un lien, une route avec un parametre nécessaire qui est une des fameuses variable de session.

Seulement, j'ai des utilisateurs qui se retrouvent avec une erreur 500 car cette variable de session et manquante et fait planter la route et toute l'appli.

J'ai essayer de reproduire le phénomène sous firefox, et je n'y arrive pas, mais tous les utilisateurs qui ont ce problème utilisent ce navigateur...

Avez vous une idée du bazar ??

Avatar de CinquièmeDimension
CinquièmeDimension

Salut,

As-tu essayé avec une ancienne version de Firefox ? Et avec le profil d'un utilisateur qui rencontre ce problème ?

Avatar de KYoann
KYoann

Salut,

J'ai posé la question de la version utilisé, j'attend le retour.

Entre les profils il n'y as pas vraiment de différence nottable, j'ai l'impression que ca se joue sur l'environnement, genre sauvegarde du mot de passe, ou le check au login pour maintenir la connexion. Mais je n'ai jamais réussi à reproduire le souci, que ce soit sur le serveur prod ou dev.

Du coup, j'ai viré le paramètre de ma route dans le menu principale, mais les les variables de session sont manquantes ca va très vite déconner ailleurs.

Je pense qu'il faudrait que je fasse une vérification de leurs existances en permanance, mais je ne sais pas ou déclarer ca dans le code !!

Sinon, pour contrecarrer les erreurs divers, j'ai créer une belle page pour remplacer l'erreur 500, avec nottament un lien pour déconnecter l'utilisateur, ce qui à permis d'aider la personne avec l'erreur.

Avatar de CinquièmeDimension
CinquièmeDimension

Pour faire ta vérif de tes variables de sessions, tu peux faire ça avec un middleware, je pense. Comme ça tu peux mettre ça sur toutes tes routes sauf quelques unes (genre /login, /register, /mdp_oublie, etc.)

Avatar de KYoann
KYoann

Je pense que j'ai compris mon problème !!!!

Je défini les variables de session au moment de l'authentification,

Mais, quand un utilisateur à sauvegarder son mot de passe, et ouvre la plateforme, et bien il ne passe pas par la casse authentification... Je suis trop con :O :O

Comme tu le propose, le middleware est je pense la solution, j'ai déjà un middleware Custom qui applique le niveau de droit de l'utilisateur en fonction d'une valeur en base de données pour chacune des routes de l'application, je vais mettre la définition de mes variables de session à cet endroi et ca devrait corriger définitivement le problème !!

Vous ne pouvez pas répondre à ce sujet.