2017-08-30 13 views
2

J'écris une application de connexion avec Silex, mais j'ai un problème avec l'encodeur de mot de passe Silex. Je lis cela dans le document Silex et a obtenu un code comme ceci:Comment encoder un mot de passe dans Silex?

// find the encoder for a UserInterface instance 
$encoder = $app['security.encoder_factory']->getEncoder($user); 

// compute the encoded password for foo 
$password = $encoder->encodePassword('foo', $user->getSalt()); 

Mais quand j'accéder à mon site dans la première fois, je n'ai pas varirable utilisateur $. Où puis-je obtenir l'utilisateur $ varirable pour encoder mon mot de passe?

MISE À JOUR MON SOLUTION

Enfin, je l'ai trouvé une solution. Ceci est mon code pour obtenir le mot de passe encodé:

$encoded = $app['security.default_encoder']->encodePassword($string, '') 

Répondre

1

Il est préférable de répondre à votre question en vous donnant une réponse. Cela vous donne la possibilité de le marquer comme terminé. Les autres utilisateurs n'auront pas à revenir sur votre question pour vous donner une solution.

Dans ce cas, vous pouvez définir ma réponse comme étant terminée afin que la question soit fermée.

Utilisez ce code pour crypter votre chaîne:

$encoded = $app['security.default_encoder']->encodePassword($string, '') 

Vous pouvez également utiliser d'autres façons de crypter vos mots de passe dans Silex. Ils peuvent être trouvés sur here.

Le code suivant peut être utilisé pour sélectionner un autre cryptage:

$app['security.default_encoder'] = function ($app) { 
    return $app['security.encoder.pbkdf2']; 
};