一つの方法は、ロードすることですパスワードを確認してください。入力したユーザ名にユーザが存在し、入力されたパスワードがそのユーザのパスワードと一致する場合は、ユーザを認証します。 例:
public function userLogin($username, $password)
{
$em = $this->getEntityManager();
$query = $em->createQuery('SELECT u FROM VenomCoreBundle:User u WHERE u.username = :username OR u.email = :username AND u.isDeleted <> 1 ')
->setParameter('username', $username);
try {
$entity = $query->getSingleResult();
if (count($entity) > 0) {
$encoder = new MessageDigestPasswordEncoder('sha512', true, 10);
$passwordEnc = $encoder->encodePassword($password, $entity->getSalt());
$userPassword = $entity->getPassword();
if ($passwordEnc == $userPassword) {
$tokenValue = $entity->getUserToken();
$profile = $entity->getUserProfile();
if(!$profile) {
return false;
}
$userName = $profile->getFullName();
$response = array(
'token' => $tokenValue,
'username' => $userName
);
} else {
return false;
}
}
} catch (\Doctrine\Orm\NoResultException $e) {
return false;
}
return $response;
}
リンクされた質問に対する私の回答は何か助けになりましたか?それとも、物事を混乱させるだけでしたか? – Cerad
どのようなWebサービスを使用していますか?パスワードはどのようにコード化されていますか?おそらく、http://symfony.com/doc/current/cookbook/security/custom_authentication_provider.htmlに記載されているように、認証プロバイダを作成する必要があります。 http://stackoverflow.com/questions/14928514/symfony2-authentication-via-3rd-party-rest-api/14947332#14947332を参照してください。開始に役立つはずです。 – hacfi
お返事ありがとうございました! @hacfiが[ここ](http://stackoverflow.com/questions/14928514/symfony2-authentication-via-3rd-party-rest-api/14947332#14947332)を示唆したようにそれをやろうとします。 – SupaCoco