Comment faire pour utiliser l'authentification pour plusieurs tables dans Laravel 5
Parfois, nous aimerions pour séparer les utilisateurs et administrateurs dans 2 tables différentes.
Je pense que c'est une bonne pratique.
J'ai donc été à la recherche si c'est possible dans Laravel 5.
Après une recherche rapide, j'ai trouvé beaucoup de personnes ayant la même question que moi.
J'ai trouvé quelques réponses, mais je ne pense pas que l'un d'eux est assez bon.
Donc, j'ai passé un peu de temps à creuser dans le code source et enfin trouver un moyen d'y parvenir.
J'avais poster la solution lorsque cette question a été soulevée. ne peut pas le voir?
OriginalL'auteur JasonW | 2015-03-22
Vous devez vous connecter pour publier un commentaire.
Avant de lire la suite, vous êtes censé avoir des connaissances de base sur le fournisseur de services, de la Façade et de la Coi dans Laravel 5. Ici nous allons.
Selon la doc de Laravel, vous pouvez trouver la Façade 'Auth' fait référence à la
Illuminate\Auth\AuthManager
, qui a un magique __call(). Vous avez pu voir la fonction principale est de ne pas en AuthManager, mais dansIlluminate\Auth\Guard
De garde a un Fournisseur. Ce fournisseur a un
$model
de la propriété, selon laquelle laEloquentUserProvider
serait de créer ce modèle par"new $model"
. Ce sont tous nous avons besoin de savoir. Voici le code.1.Nous avons besoin de créer un
AdminAuthServiceProvider
.2.Façade:
3. ajouter l'alias à Noyau:
Espère que cela pourrait être utile.
Est-il vraiment un problème de sécurité avec cette méthode?
Si je comprends bien, le "admin" et "non-admin' utilisateurs dans des tables distinctes. Dans ce cas, vous interrogeant 'admin' de la table de la zone d'administration, et les "utilisateurs" pour les non-admin domaines. De sorte que les utilisateurs avec un chevauchement Id ne devrait pas être un problème, tant que vous ne cherchez 'admin' utilisateurs 'admin' de la table. Même si vous connaissez l'ID d'un utilisateur, vous devez avoir une correspondance de nom d'utilisateur et un mot de passe afin d'établir une session, donc il devrait y avoir aucun problème ici. La session, de ne pas l'id de l'utilisateur, est la "clé", et qui est garanti unique en PHP (en supposant que les meilleures pratiques).
Le potentiel de violation de la sécurité, après tout. J'ai mis en place un autre travail autour pour le multi auth mais toujours le même problème, comme Si l'admin et utilisateur normal id correspond à Cela permettrait à l'utilisateur d'être connecté en tant qu'admin.
OriginalL'auteur JasonW
J'ai créé un laravel paquet où vous pouvez gérer plusieurs d'authentification.
Étape 1 : Compositeur besoin
Tout d'abord, compositeur exiger la multiauth paquet
Étape 2 : Remplacement de défaut auth fournisseur de services
Remplacer
avec
dans votre config/app.php fichier
Étape 3 : Modifier auth.php
Modifier votre config/auth.php fichier à quelque chose comme ceci
C'est tout! Maintenant, vous pouvez essayer plusieurs authentification par passage de l'utilisateur en tant que premier paramètre. Par exemple
Pour une documentation plus détaillée
http://sarav.co/blog/multiple-authentication-in-laravel/
http://sarav.co/blog/multiple-authentication-in-laravel-continued/
Je suis Éclairer/Auth/Gaurd pas trouvé. 🙁 ajouté tous les provideers encore. s'il vous plaît aider
Éclairer/Auth/Gaurd pas trouvé. cette bibliothèque n'a jamais travaillé. ne pas utiliser cette bibliothèque
OriginalL'auteur Saravanan Sampathkumar
il y a de bons paquets pour le multi auth. consultez ces liens:
sboo multiauth paquet
mohamednagy/multiauth
OriginalL'auteur Salar