Permettre la connexion utilisant le nom d'utilisateur ou e-mail dans Laravel 5.4
Maintenant, j'ai suivi la Laravel de la documentation sur la façon de permettre à des noms d'utilisateur lors de l'authentification, mais il enlève la possibilité d'utiliser l'e-mail. Je veux permettre aux utilisateurs d'utiliser leur nom d'utilisateur ou e-mail pour vous connecter. Comment puis-je aller à ce sujet?
J'ai ajouté ce code à la LoginController comme par Laravel de la Documentation et il permet seulement un nom d'utilisateur pour la connexion. Je veux qu'il accepte de nom d'utilisateur ou e-mail pour vous connecter.
public function username () {
return 'username';
}
- Êtes-vous à l'aide de la valeur par défaut auth par laravel? si oui, vous devez choisir soit le nom d'utilisateur ou e-mail. pas les deux. usrname retourne une chaîne de caractères, pas un tableau. Si vous voulez de connexion personnalisée, vous devez écrire la logique de vous-même.
- comment dois-je faire? Je ne suis pas sûr que les fichiers à modifier si je veux écrire mon propre logique.
- Vérifier ma réponse ci-dessous.
Vous devez vous connecter pour publier un commentaire.
Suivre les instructions de ce lien: https://laravel.com/docs/5.4/authentication#authenticating-users
Ensuite, vous pouvez vérifier pour la saisie de l'utilisateur comme ceci
C'est juste un exemple. Il existe d'innombrables diverses approches que vous pouvez prendre pour faire de même.
Je pense que d'une façon plus simple est de simplement remplacer le nom d'utilisateur de la méthode dans LoginController:
Ouvrir votre
LoginController.php
fichier.Ajouter cette référence
Et remplacer le informations d'identification de la méthode
Testé avec succès dans Laravel 5.7.11
Vous avez besoin de remplacer
protected function attemptLogin(Request $request)
méthode de\Illuminate\Foundation\Auth\AuthenticatesUsers
Trait à votre LoginControllerc'est à dire dans mon LoginController classe
Votre LoginController classe doit utiliser le Trait
\Illuminate\Foundation\Auth\AuthenticatesUsers
afin de remplacerattemptLogin
méthode c'est à direJe pense que c'est encore plus simple, il suffit de surcharger la méthode de AuthenticatesUsers traits, les informations d'identification de méthode dans votre LoginController. Ici, j'ai mis en œuvre pour la connexion avec un e-mail ou téléphone. Vous pouvez le modifier pour l'adapter à vos besoins.
LoginController.php
C'est la façon dont je le fais:
Je crois qu'il existe une façon plus simple de le faire, mais pour moi cela fonctionne et est facile à comprendre.
Ajouter ce code à votre de connexion à un contrôleur Espère que ça fonctionne. Référence connexion avec e-mail ou nom d'utilisateur dans un champ
Merci, c'est la solution que j'ai obtenu grâce à la vôtre.