2013-05-30 2 views
0

Je suis en train de mettre en place une méthode d'authentification personnalisé le long des lignes de:Symfony2 méthode d'authentification personnalisée

table utilisateurs: id, nom d'utilisateur, email, hash2, SALT1 tableau mots de passe: hash1, salt2

la méthode d'authentification serait alors:

  • Extrayez SALT1 et hash2 de la table des utilisateurs
  • Récupérer salt2 de la table des mots de passe (sélectionnez salt2 où hash1 = hachage (SALT1 + mot de passe))
  • Vérifier que le mot de passe haché avec salt2 correspond hash2

Cependant, je ne peux pas comprendre comment mettre en œuvre une méthode d'authentification à plusieurs étapes comme celui-ci. Tous les exemples que j'ai trouvés montrent seulement comment fonctionnent les méthodes de base.

Répondre

0

Avez-vous vraiment besoin de créer votre propre méthode d'authentification? Actuellement, vous essayez de faire de la cryptographie vous-même, ce qui est mauvais car la cryptographie est difficile.

Est-il possible que vous utilisiez le mécanisme d'authentification par défaut avec votre propre fournisseur d'utilisateurs? Voir la documentation ici http://symfony.com/doc/current/cookbook/security/custom_provider.html

+0

Peut-être que je ne comprends pas encore le fonctionnement de Symfony2. Est-il possible de faire ce qui précède avec l'authentification par défaut? La raison pour laquelle je veux faire ce qui est ci-dessus est qu'il rend difficile la définition d'un mot de passe si quelqu'un devait mettre la main sur la base de données. Le seul problème est, je ne peux pas voir comment je peux utiliser cela avec les méthodes getPassword et getSalt, comme c'est une méthode en plusieurs étapes. – Erekel

+0

Ne vous inquiétez pas, le mécanisme d'authentification par défaut de Symfony2 est sécurisé et les mots de passe sont correctement hachés. – julesbou

+0

J'ai décidé d'y aller car la mise en œuvre de mon propre n'était pas rentable. – Erekel

Questions connexes