symfony - with - Compruebe la contraseña y cree usuarios manualmente con FOSUserBundle
login fosuserbundle (3)
Agregar manualmente un nuevo usuario:
Inicie sesión en phpmyadmin , acceda a la tabla fos_user_user , haga clic en Insertar> campos de relleno, nombre de usuario, correo electrónico, roles, etc.
Genera sal y contraseña usando este script php:
<?php
$salt = base_convert(sha1(uniqid(mt_rand(), true)), 16, 36);
echo "Salt used: " . $salt ."<br/>";
echo "<br/>";
$password = ''adminpasswordhere'';
$salted = $password.''{''.$salt.''}'';
$digest = hash(''sha512'', $salted, true);
for ($i=1; $i<5000; $i++) {
$digest = hash(''sha512'', $digest.$salted, true);
}
$encodedPassword = base64_encode($digest);
echo "Password used: " . $password ."<br/>";
echo "<br/>";
echo "Encrypted Password: " . $encodedPassword ."<br/>";
?>
¡Disfruta!
Estoy usando FOSUserBundle en mi aplicación. Me gustaría hacer dos cosas a través de los servicios HTTP:
Verificar contraseña. El servicio podría verse así (la contraseña no se cifraría):
public function checkPasswordValidity($userId, $password) { $user = $this->getDoctrine() ->getRepository(''MyCompany/UserBundle/Entity/User'') ->find($userId); if (specialFunction($user , $password)) echo ''Valid Password''; else echo ''Invalid Password''; }
Crea un nuevo usuario a través de otro servicio HTTP. Los parámetros serían el nombre de usuario y la contraseña.
Verificar contraseña:
$encoder_service = $this->get(''security.encoder_factory''); $encoder = $encoder_service->getEncoder($user); $encoded_pass = $encoder->encodePassword($password, $user->getSalt()); //then compare $user->getPassword() and $encoded_pass
Crea un nuevo usuario:
$userManager = $this->get(''fos_user.user_manager''); $user = $userManager->createUser(); $user->setUsername($login); $user->setPlainPassword($pass); ... $userManager->updateUser($user);
Para mí funciona:
$encoder_service = $this->get(''security.encoder_factory'');
$encoder = $encoder_service->getEncoder($user);
if ($encoder->isPasswordValid($user->getPassword(), $password, $user->getSalt()) {}
No probé la segunda pregunta, pero creo que ya está answered .