我正在尝试验证用户,我无法使用FOSub bcz它与Symfony 4不兼容,我正在编写我的编码。 我通过ajax将用户名和密码传递给服务。尝试登录用户的方法:
public function login($username, $password) {
$user = $this->entityManager->getRepository("App:Users")
->findOneBy(array('username' => $username));
}
if(!$this->encoder->isPasswordValid($user->getPassword(), $password)) {
return new Response(
'Username or Password not valid.',
Response::HTTP_UNAUTHORIZED,
array('Content-type' => 'application/json')
);
}
}
当我调用此方法时,我有错误:
类型错误:传递给Symfony \ Component \ Security \ Core \ Encoder \ UserPasswordEncoder :: isPasswordValid()的参数1必须实现接口Symfony \ Component \ Security \ Core \ User \ UserInterface,给定字符串,在/ src / Service中调用第60行的/Login.php
为什么它告诉我在Symfony文档中有
时必须实现一些服务isPasswordValid( string $ encoded, string $ raw,string $ salt),根据编码的密码检查原始密码。
我不明白这一点......