J'ai une application multi-utilisateur avec la relation d'entité / modèle suivante.
Les utilisateurs d'une entreprise n'ont pas besoin d'avoir accès au Soutien des billets d'autres sociétés - Si un utilisateur d'une entreprise navigue dans une URL pointant vers un ticket d'assistance d'une autre société, ils devraient recevoir un 404 ou quelque chose d'équivalent. p> J'espérais définir une portée globale dans la classe Supportticket comme suit: p> Le bénéfice d'une portée globale est qu'il s'appliquera à tous requêtes. D'autres développeurs travaillant sur le projet n'ont pas besoin de fonctionner lors de la récupération des billets car les bons résultats seront toujours retournés. P> par exemple Le défi que j'ai maintenant est que Merci d'avance pour toutes les réponses. p> p> supportticket :: Tous () code> ou
supportticket :: Trouver (5) code> restreindre toujours l'accès par la société de l'utilisateur. P>
auth () -> utilisateur () code> retourne toujours null car le middleware authentifié n'a pas encore été exécuté. p>
3 Réponses :
Vous pouvez vérifier à l'intérieur de la méthode de démarrage s'il y a un utilisateur authentifié à l'aide de \ Auth :: check () avant d'appeler \ Auth :: Utilisateur (). Si le middleware d'authentification est d'emballage des itinéraires ou du contrôleur lui-même, vous pouvez accéder à l'utilisateur authentifié n'importe où à l'aide de la façade \ Auth :: Utilisateur () P>
Si vous utilisez le package JWT Auth de Tymon, vous pouvez obtenir un utilisateur authentifiant comme celui-ci
$authUser = \JWTAuth::parseToken()->authenticate();
LARAVEL 5.6.26 Introduit Pour que vous puissiez faire quelque chose comme ceci: p> Auth :: Hasuser () Code> Pour déterminer si l'utilisateur actuel est déjà authentifié sans interroger le modèle utilisateur de votre base de données. Vous pouvez trouver plus de détails sur https://laravel-news.com/laravel-5- 6-26
Vérifiez ce lien ( laravel.com/docs/5.3/upgrade#5.3 -Session in-constructeurs ) Il parle de la manière dont vous pouvez appeler le middleware manuellement à l'intérieur du constructeur du contrôleur, vous pouvez peut-être utiliser cela pour exécuter le middleware manuellement ...
Dupliqué possible de filtres de modèle en fonction de l'utilisateur actuellement authentifié
@Amade merci de m'avoir dirigé. De cette question, j'ai trouvé la solution. Il se lie vers un Portée mondiale sur GitHub qui détaille une solution vraiment belle.