Artisan de commande pour supprimer toutes les données de session dans Laravel
Ce qui est l'artisan de commande pour supprimer toutes les données de session dans Laravel, je suis à la recherche de quelque chose comme:
$ php artisan session:clear
Mais apparemment, il n'existe pas. Comment aurais-je clair à partir de la ligne de commande?
J'ai essayé d'utiliser
$ php artisan tinker
...
\Session::flush();
Mais il bouffées de session d'un utilisateur, je veux vider toutes les séances, pour tous les utilisateurs. Comment puis-je le faire?
J'ai essayé ceci:
artisan cache:clear
Mais il n'est pas clair session, encore une fois.
- Vous pouvez le supprimer manuellement de stockage/cadre/sessions.Vous pouvez écrire artisan commande vous-même pour automatiser ce processus. laravel.com/docs/5.6/artisan#writing-commands
- Je l'ai dans le tableau à la mise en scène et dans le fichier locale et à l'aide d'une commande serait plus facile et plus universel.
- Et je suis paresseux pour exécuter une base de données Mysql Workbench juste pour tronquer une table. Il prend trop de temps à charger et trop d'étapes à faire.
Vous devez vous connecter pour publier un commentaire.
Mise à JOUR: Cette question semble être demandé assez souvent et beaucoup de gens sont encore activement en le commentant.
Dans la pratique, c'est une idée horrible pour vider les sessions à l'aide de la
Il peut provoquer toutes sortes de ravages. La meilleure façon de le faire est d'effacer n'importe quel système que vous utilisez.
Le Paresseux guide des Programmeurs pour le rinçage de toutes les sessions:
Fera toutes les sessions invalide en raison d'une nouvelle application de la clé est spécifiée
Pas si Paresseux approche
puis insérez
et puis
APP_KEY
avecphp artisan key:generate
car il va détruire tous les utilisateurs, mots de passe, n'est-ce pas?Si vous utilisez de fichier de base de séances de, vous pouvez utiliser la commande linux pour nettoyer les séances de dossier:
artisan command
mais il ne fonctionnera que si vous utilisez unfile driver
pour votresession data
, droit?.gitignore
fichier qui est là pour préserver le dossier (vide) au moment de la validation.Un moyen facile de se débarrasser de toutes les sessions est de changer le nom du cookie de session. Cela peut être fait facilement en changeant la
'cookie' => '...'
ligne dansconfig/session.php
fichier.Cela fonctionne indépendamment de la session de stockage que vous utilisez et aussi de ne pas toucher d'autres données, sauf les données de la session (et semble donc préférable sur le renouvellement de l'application de la clé de la solution pour moi, où vous perdez toutes les données chiffrées stockées dans l'application).
APP_KEY
est également un sel pour le hachage créé avecHash::make()
. De sorte que les utilisateurs de mot de passe et autres données hachées sera invalide après modification.domain
dans le même fichier?Ce fil est tout à fait beaucoup de vieux. Mais je tiens à partager ma mise en œuvre de la suppression de tous sesssions de fichier de base de pilote.
Pourquoi je n'ai pas utilisé linux commande 'rm'?
Parce que PHP est l'une des conditions préalables pour Laravel et Linux n'est pas. À l'aide de cette commande Linux va faire de notre projet réalisable sur un environnement Linux seulement.
C'est pourquoi il est bon d'utiliser PHP Laravel.
Le problème est que Laravel est
SessionHandlerInterface
ne force pas la session pilotes de fournir tout type dedestroyAll()
méthode. Ainsi, il doit être mis en œuvre manuellement pour chaque pilote.Prendre des idées de réponses différentes, je suis venu avec cette solution:
app/Console/Commands/FlushSessions.php
Implémentations pour les autres pilotes sont les bienvenus!