Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je veux

Bonsoir, je suis en train de développement un petit site web perso, mais comme vous le savez en général il y a des personnes de bas âges qui s'amusent à faire des bêtises sur les sites internet, et je voudrais faire un petit système de bannissement. Or je ne sais pas comment faire pour procéder. Alors je vous explique ce que je fais.

Alors lors de l'inscription de l'utilisateur je stock dans la base de données une valeur qui se nomme ( " isbanned ") par défaut cette dernière
à la valeur " 0 " quand l'utilisateur a la valeur " 1 " il est ban. Et moi je voudrais que quand l'utilisateur essaye de se connecter je voudrais
vérifier quece dernier n'a pas la valeur 1. Un truc du genre :

si user à la valeur 0 => il passe il est connecté
sinon ont lui renvoi un message avec marquer => "Tu es ban" et que la connexion soit annulé

( PS : J'use le système d'auth de laravel " php artisan make:auth " )

Merci à vous les amis. Bonne soirée à vous.

4 réponses


Bonsoir.
Si tu veux savoir si l'utilisateur est banni ou non, le mieux c'est d'abord de rechercher l'utilisateur d'après les données que tu demandes dans le formulaire de connexion, ensuite si tu récupères un utilisateur, c'est qu'il existe bien dans la base de données, puis tu vérifies la valeur du champ, s'il n'est pas banni, c'est que c'est bon, tu le connecte manuellement, sinon tu lui retourne qu'il ne peut plus se connecter et la raison.
Car si tu configure le composant d'authentification qu'il ne connecte que les utilisateurs qui ne sont pas banni, que l'utilisateur aie donné les bonnes informations de connexion ou non, ou qu'il soit banni, tu ne pourra pas le savoir.

Salut,

Tu peux aussi utiliser un système de middleware permettant de checker a chaque chargement si il est banni ou pas. J'opterais pour cette solution si tu as mis en place "Se souvenir de moi".

Pouvez vous me donner des exemple de code? Merci

Dans l'exemple que je t'ai donné, tu fais simplement une requête SQL avec conditions sur le nom d'utilisateur et le mot de passe (par exemple) en récupérant la valeur du champ is_banned et l'id de l'utilisateur.
Si tu récupères bien un utilisateur, c'est que l'utilisateur existe bien et qu'il a bien donné les bonnes informations, à partir de là, tu vérifies la valeur du champ is_banned, si elles est bonne tu le connecte manuellement, exemple : Manually Authenticating Users » Authenticate A User By ID.
Si la valeur n'est pas bonne, tu l'informes qu'il est banni.
Si tu utilises Laravel, tu devrais savoir le faire faire ça sans que je n'ai à te donner le code.