Comment implémenter une fonctionnalité 'Remember Me' dans Laravel
Assurez-vous qu'il existe une colonne Remember_token dans la table utilisateur. La migration par défaut de Laravel comprend déjà ce champ. Sinon, il sera ajouté par migration; 2. Ajoutez une case à cocher avec le nom Rappelez-vous dans le formulaire de connexion pour fournir l'option "Remember Me"; 3. Passez le paramètre Remember à la méthode AUTH :: TUT () pendant l'authentification manuelle pour activer la connexion persistante; 4. "Remember Me" dure 5 ans par défaut et peut être personnalisé via l'élément de configuration Remember_For dans config / auth.php; 5. Laravel invalide automatiquement Remember_Token lorsque le mot de passe change ou les suppressions de l'utilisateur. Il est recommandé d'utiliser HTTPS pour assurer la sécurité dans l'environnement de production; 6. Lorsque l'utilisateur se déconnecte, il appelle Auth :: Logout () et invalide la session pour s'assurer que Remember_Token est effacé; En résumé, Laravel réalise pleinement la fonction sûre et fiable "Remember Me" à travers des champs de base de données, des cookies de chiffrement et des mécanismes d'authentification intégrés, et peut être utilisé normalement par une configuration correcte.
La mise en œuvre d'une fonctionnalité "Remember Me" dans Laravel est simple car le système d'authentification intégré de Laravel le prend en charge hors de la boîte. La fonction "Remember Me" permet aux utilisateurs de rester connectés pendant une période plus longue, même après la fermeture du navigateur.
Voici comment vous pouvez correctement implémenter et l'utiliser:
1. Ajoutez une colonne remember_token
à votre modèle d'utilisateur
Laravel s'attend à une colonne remember_token
dans la table des utilisateurs pour prendre en charge la fonctionnalité "Remember Me".
Si vous utilisez la migration d'utilisateurs Laravel par défaut, cette colonne est déjà incluse:
// dans Create_users_Table Migration $ Table-> RememberToken (); // Cela ajoute Remember_Token Varchar (100) null
Si vous l'ajoutez à un tableau ou un modèle existant, créez une nouvelle migration:
PHP Artisan Mak
Ensuite, dans le fichier de migration:
Fonction publique UP () { Schéma :: table ('utilisateurs', fonction (tableau Blueprint $) { $ Table-> RememberToken (); }); } Fonction publique Down () { Schéma :: table ('utilisateurs', fonction (tableau Blueprint $) { $ table-> droprememberToken (); }); }
Exécutez la migration:
PHP Artisan Migrate
2. Mettez à jour votre formulaire de connexion avec une case "Remember Me"
Dans votre formulaire de connexion (par exemple, login.blade.php
), ajoutez une case à cocher pour "Remember Me":
<form method = "post" action = "{{Route ('Login')}}"> @csrf <div> <étiquette pour = "Email"> Email </Babed> <entrée id = "e-mail" type = "e-mail" name = "e-mail" value = "{{old ('e-mail')}}" requis> </div> <div> <étiquette pour = "Mot de passe"> Mot de passe </ label> <entrée id = "mot de passe" type = "mot de passe" name = "mot de passe" requis> </div> <div> <input type = "checkbox" name = "Remember" id = "Remember" {{old ('Remember')? 'vérifié': ''}}> <étiquette pour = "Remember"> Rappelez-vous moi </bétique> </div> <Button Type = "Soumider"> Connexion </ftones> </ form>
3. Modifiez la logique de connexion pour prendre en charge "Remember Me"
Si vous utilisez Laravel Breeze, Jetsstream ou Fortify, cela est déjà géré. Mais si vous gérez l'authentification manuellement (par exemple, dans un LoginController
personnalisé), vous devez passer l'option remember
à la méthode attempt
.
Utiliser illuminate \ http \ request; Utiliser illuminate \ support \ FACADES \ Auth; Connexion de la fonction publique (demande $ demande) { $ indentings = $ request-> valider ([ 'email' => ['requis', 'e-mail'], 'mot de passe' => ['requis'], ])); $ rappelez-vous = $ request-> a («rappeler»); if (auth :: tentating ($ indentings, $ webral))) { $ request-> session () -> regenerate (); return redirect () -> voulu ('/ tableau de bord'); } return back () -> witherrors ([[ 'Email' => 'Les informations d'identification fournies ne correspondent pas à nos enregistrements.', ])); }
Remarque: Le deuxième paramètre de
Auth::attempt()
se$remember
, qui, lorsqu'iltrue
, dit à Laravel de garder l'utilisateur connecté indéfiniment (jusqu'à ce que le jeton expire ou soit invalidé).
4. Combien de temps dure "Se souvenir de moi"?
Par défaut, Laravel garde la connexion "Remember Me" pendant 5 ans . Ceci est défini dans la configuration de la session.
Vous pouvez le personnaliser en modifiant l'option remember_for
dans config/auth.php
:
'fournisseurs' => [ 'utilisateurs' => [ 'driver' => 'éloquent', 'modèle' => app \ modèles \ user :: class, 'Remember_for' => 31536000, // 1 an en secondes (facultatif) ], ],
⚠️ Assurez-vous d'exécuter
php artisan config:cache
en production après avoir modifié les fichiers de configuration.
5. Considérations de sécurité
- Le
remember_token
est stocké dans la base de données et en tant que cookie sécurisé dans le navigateur de l'utilisateur. - Laravel invalide automatiquement le jeton sur le changement de mot de passe ou la suppression de l'utilisateur.
- Utilisez toujours les HTTPS en production pour protéger le cookie Remember-moi contre l'interception.
6. Connexion et effacer "Rappelez-vous de moi"
Lorsqu'un utilisateur se déconnecte manuellement, Laravel invalide le jeton Remember-Me par défaut. Dans votre méthode de déconnexion:
Auth :: Logout (); $ request-> session () -> invalidate (); $ request-> session () -> RegenerateToken ();
Cela garantit que le jeton "Remember Me" est effacé de la base de données.
Résumé
Pour activer "Remember Me" à Laravel:
- ✅ Assurez-vous que la colonne
remember_token
existe dans la table des utilisateurs - ✅ Ajoutez une boîte à cocher
remember
dans le formulaire de connexion - ✅ Passez le drapeau
remember
toAuth::attempt()
- ✅ Gérer correctement le logo pour invalider le jeton
Laravel gère le reste - stocker des jetons, les valider lors de visites futures et garder les utilisateurs connectés en toute sécurité.
Fondamentalement, il est simple d'implémenter et de robuster par défaut.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Créer des modèles et la migration: utilisez PhPartisanMake: ModelPost-M pour générer des modèles et des fichiers de migration, définissez la structure du tableau et exécutez PhPartisanMigrate; 2. 3. Utiliser une association éloquente: définir l'appartenance et les relations HasMany dans le modèle, et utilisez la méthode avec () pour précharger les données associées pour éviter les problèmes de requête n 1; 4. Requête éloquente: utilisez le constructeur de requête pour des appels de chaîne tels que où

Le système TaskSCheduling de Laravel vous permet de définir et de gérer les tâches de synchronisation via PHP, sans éditer manuellement le serveur Crontab, vous n'avez qu'à ajouter une tâche CRON qui est exécutée une fois par minute au serveur: * CD / PATH-TOT-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-YOUR-TROject && phpartisanschedule: Exécuter >> / Dev / Null2> & 1, et ensuite les tâches sont configurées dans la méthode de la programmation de l'accident \ Kernl; 1. La définition des tâches peut utiliser des méthodes de commande, d'appel ou d'exécution, telles que $ calendrier-

Oui, YouCancreatEasocialNetworkwithLaravelByFollowingTheSestests: 1.SetUpLaraveLusingComposer, Configurethe.envfile, pertinentAuthenticationViabeze / Jetsstream / Fortify, andrunmigrationsforUserManagement.2

PolymorphicRelationshipSinLaravelallowamodellikEcommentorimagetobelongTomultipleModelsSuchaspost, vidéo, OruserUsingAingLinsEassociation.2.Thedatabaseschemarequires {relation} _idand {relation} _TypeinacoMn, eXEMPLIBudcuMeMment_idandcunable_typeinacoMnus, EXEMPLIBUDAMENTALE_DANDANMETALAGE_

L'utilisation de Laravel pour créer un backend mobile nécessite d'abord d'installer le cadre et de configurer l'environnement de la base de données; 2. Définissez les routes API dans Routes / API.php et renvoyez une réponse JSON à l'aide du contrôleur de ressource; 3. Implémentez l'authentification de l'API via Laravelsanctum pour générer des jetons pour le stockage mobile et l'authentification; 4. Vérifiez le type de fichier lors du téléchargement de fichiers et stockez-le sur le disque public, et créez des liens souples pour un accès externe; 5. L'environnement de production nécessite HTTPS, définir les limites de courant, configurer les COR, effectuer le contrôle de la version API et optimiser la gestion des erreurs. Il est également recommandé d'utiliser les ressources API, la pagination, les files d'attente et les outils de documents API pour améliorer la maintenabilité et les performances. Utilisez Laravel pour construire un coffre-fort,

Créer des fichiers linguistiques: créer des sous-répertoires pour chaque langue (tels que EN, ES) dans le répertoire Resources / Lang et ajouter des fichiers messages.php, ou utiliser le fichier JSON pour stocker la traduction; 2. Définir le langage de l'application: Lisez l'en-tête de demande Accept-Language via le middleware ou détectez le langage via un préfixe d'URL, définissez la langue actuelle à l'aide d'App () -> setLocale () et enregistrez le middleware dans kernel.php; 3. Utilisez des fonctions de traduction: utilisez __ (), trans () ou @lang dans la vue pour obtenir le contenu de traduction, et il est recommandé d'utiliser __ () qui prend en charge le secours; 4. Paramètres de soutien et pluriel: Utilisez les espaces réservés dans les chaînes de traduction telles que: n

LaravelsesMonologTologMessagesViathelogFacade, avec DefaultLogsStoredInstorage / Logs / Laravel.log.ConfigureChannelsInConfig / Logging.PhptoControloutput

Assurez-vous qu'il existe une colonne Remember_token dans la table utilisateur. La migration par défaut de Laravel comprend déjà ce champ. Sinon, il sera ajouté par migration; 2. Ajoutez une case à cocher avec le nom Rappelez-vous dans le formulaire de connexion pour fournir l'option "Remember Me"; 3. Passez le paramètre Remember à la méthode AUTH :: TUT () pendant l'authentification manuelle pour activer la connexion persistante; 4. "Remember Me" dure 5 ans par défaut et peut être personnalisé via l'élément de configuration Remember_For dans config / auth.php; 5. Laravel invalide automatiquement Remember_Token lorsque le mot de passe change ou les suppressions de l'utilisateur. Il est recommandé d'utiliser HTTPS pour assurer la sécurité dans l'environnement de production; 6
