Laravel séances de régénération sur chaque charge
Je vais avoir beaucoup de problèmes et je ne peux vraiment pas l'air de trouver une solution.
Hier, j'ai fini par faire un peu de travail sur un vagrant box dans Laravel. Quand j'ai éteint l'ordinateur, la fonctionnalité de login a été fonctionne correctement.
Sur l'ouverture de tout aujourd'hui, je trouve les séances ne sont plus de travail.
J'ai essayé tout ce que je pense, mais je ne peux pas, connectez-vous et flash de données ne fonctionne pas.
Chaque chargement de page, une nouvelle session est créée - e.g à l'aide du pilote natif, si j'ai la connexion, il crée deux sessions, une pour la page de connexion, et un pour la publication de la page de login.
Si j'utilise un pilote de base de données, j'obtiens le même résultat. Chaque fois que je clique sur connexion, je reçois deux autres lignes de données de session
Je ne peux pas dire ce qui se passe avec le cookie pilote, mais je l'ai essayé et ça ne fonctionne pas.
J'ai essayé sur Chrome et IE, ni de connexion. J'ai essayé de supprimer le contenu du dossier de stockage à plusieurs reprises, et vider les cookies sur le navigateur de côté. Je ne pense qu'il peut être à voir avec le temps, être différent sur la machine virtuelle et la machine locale, mais ils sont synchronisés.
Les idées de ce que pourrait être la cause? Quelqu'un rencontré ce problème avant?
edit: j'ai aussi maintenant recréé la machine virtuelle et le problème existe toujours
deuxième edit: j'ai maintenant commencé à partir de zéro en utilisant un digitalocean VPS avec les mêmes résultats.
J'ai supprimé tout le contenu de mon fichier de routes et tout ce qu'il a maintenant est la suivante
<?php
Route::get('/sess/set/{value}', function($value) {
Session::set('testv', $value);
Return 'Set ' . $value . ' - ' . Session::get('testv');
});
Route::get('/sess/get', function() {
Return 'Get ' . Session::get('testv');
});
Je visite la première page et il montre la valeur que j'ai mis dans la session. Hit la deuxième page et vous obtenez seulement la 'Get', sans aucune valeur de session.
session_attributes a toujours un champ _token, j'ai essayé de changer le nom de la session et le domaine et ne peut toujours pas obtenir des séances de travail.
edit3: pour toute personne qui vient sur ce, je n'ai jamais identifié le problème. J'ai commencé un projet totalement nouveau, copié mon contrôleurs et les vues à travers, recréé mon fichier de routes et tout fonctionne maintenant - même si je suis à moitié attendre la mise à jour de ce post demain pour dire qu'il est brisé à nouveau!
- J'ai testé votre code, sa fonctionne bien. J'ai eu ce problème lorsque la mise à jour v4.0 v4.1. Mais simplement témoin de suppression de navigateur a fonctionné pour moi... comme vous l'a dit plus tôt, vous l'avez fait, mais il a travaillé dans ma fin...
- Vérifiez votre environnement de configs. Par défaut config/local/session.php utilise le pilote tableau où, comme config/session.php utilise le fichier de driver
Vous devez vous connecter pour publier un commentaire.
Mon problème est que j'ai eu l'écho des déclarations dans ma fonction. Il a été de garder la session d'être correctement créés ou stockés.
J'ai eu une écho avant mon retour Redirect", de sorte que la redirection n'a pas obtenir de la session...
Détails: http://brainwashinc.com/2014/02/17/laravel-sessions-not-working-in-4-1/
J'ai eu exactement ce problème et avec presque la même milieux. Comme vous l'avez expérimenté aussi bien ce qui a fini par travailler pour moi a été de commencer un totalement nouveau Laravel 4.1 projet et la copie de tout. Cependant, je ne les trouve aussi que en changeant une variable de config, j'ai été en mesure de résoudre le problème:
Dans /app/config/session.php modifier la
lifetime
config élément à quelque chose de plus grand que 0. Cela a réglé le problème pour moi.J'ai eu ce même problème et qui a déjà changé mes valeurs de session à la 4,1 version. Je suis connecté sur notre serveur et a couru le compositeur de la commande de mise à jour, après avoir fini tout a bien fonctionné.
J'ai passé une journée entière avec la même question (session régénérée avec presque chaque requête), et ne pouvait pas trouver quelque chose d'utile en ligne. Poster ici au cas où quelqu'un a le même problème.
Fondamentalement, le problème est que le cookie de session n'a pas été définie correctement à cause du modèle d'erreurs. Donc, si vous exécutez sur ce problème, vérifiez tout d'abord que le cookie de session est définie avec chaque demande via les en-têtes http.
Dans mon cas, j'ai mal quelque chose comme cela dans certains de mes modèles:
C'est faux!
Dans Laravel 4, il doit être @stop au lieu de @endsection:
À l'aide de @endsection fait l'application se termine pas correctement, donc pas de cookie de session a été défini. Il n'y a aucune trace de quoi que ce soit de mal dans les fichiers de log cependant. BTW, ce type d'erreur, qui conduit également à l'après-filtres ne pas être appliquée.
J'ai aussi ce problème, et il s'est avéré être avec la sortie des données au début - j'étais déjà en écho à certains texte de débogage dans le contrôleur de l'action, et a ensuite essayé paramètre une variable de session pour la première fois la session qui vient de ne pas persister, et gardé à recréer à chaque fois - une fois que j'ai enlevé la sortie, il a bien fonctionné (et des beaux-partir)
J'ai mis à niveau à partir de Laravel 5.1 à 5.2 et a eu le problème de nombreuses sessions d'être créé à chaque chargement de page. Il n'a pas d'importance quelle session pilote que j'ai utilisé, ni ne rien changer dans la config de la faire fonctionner. (J'ai essayé toutes les suggestions sur tous les StackOverflow résultat produit par Google.)
La solution pour moi: supprimer "web" middleware de vos itinéraires. Apparemment, web middleware est inclus automatiquement dans 5.2+, donc si vos itinéraires de la préciser, vous vous retrouvez avec plusieurs sessions générées.
Il y a beaucoup de raisons pour lesquelles cela peut se produire, je viens de tomber sur ce problème moi-même. Le correctif a été pour moi de changer:
à
sur le
User
modèle.J'ai connu des problèmes liés à cela. Le fichier de session n'a pas été créé à chaque fois, mais parfois, j'ai juste ne peut pas obtenir la variable de session affiche. Après des heures d'essais, je trouve que le problème était lié à Debugbar.
Si vous utilisez Debugbar et avoir de la session de questions, désactivez-le et essayez à nouveau pour le confirmer. Il y a un question rapportés ici.