Bonjour,

Je suis en pleine "rénovation" de mon site web, j'abandonne cakephp pour passer sur un code maison et Slim en tant que router.

J'ai commencé à travailler sur la partie Login et Register. Pour l'instant j'ai une classe qui gère la connexion via le couple Login/Password (nommons la Db_Auth) et une classe pour la connexion via Facebook (nommons la Fb_Auth). Les deux classes sont des classes génériques que je compte réutiliser pour d'autres projets.

J'ai commencé à m'attaquer à l'inscription, mais j'ai un soucis au niveau logique :

Si un utilisateur se connect via Facebook pour la première fois, je veux pouvoir enregistrer ses données dans ma db. Je dois donc envoyer ses données à une méthode register.

Du coup j'ai réfléchis aux différentes manières de faire celà :

  • Faire une méthode register unique qui se trouverais dans ma classe Db_Auth, et n'écrire qu'une seule fois le code qui tiendrais compte de la façon d'inscription mais qui allourdirais le code si je n'utilise pas de FbConnect dans un projet futur.
  • Ecrire une classe propre à mon projet qui hériterais de Db_Auth et qui redéfinirai la méthode register en y ajoutant une condition pour si l'utilisateur s'est connecté via facebook.
  • Ajouter une méthode register au sein de ma classe Fb_Auth.
  • Ne pas faire de méthode register au sein de mes classes, mais l'ajouter dans le controller qui gère la connexion et l'inscription.

Si je ne vous ai pas perdu au fil de mes explications, voici la question que je me posait : La méthode register a-t-elle sa place dans une classe d'authentification ? Ou tout simplement dans le fichier qui va traiter le formulaire de connexion/inscription.

Merci à vous :)

2 réponses


Grafikart
Réponse acceptée

Je pense que la meilleur solution serait de faire une class Auth parente (ou carrément une interface) qui auraient les méthodes nécessaire au fonctionnement de ton authentification. Puis je créerais une class Db_auth / Fb_Auth / Twitter_auth et ainsi de suite :)

elhebert
Auteur

Bon, je répond tard, je sais :)

Mais c'est vraiment pas bête le coup de l'interface, j'y pense jamais. Du coup mes classes d'auth implements AuthInterface.

Du coup je valide !