/**
* @RPC\Route("/api/auth/login")
* @RPC\Method("POST")
*/
public function login()
{
$credentials = json_decode($this->request->getContent(), true);
try {
v::create()->key('email', v::notEmpty())->key('password', v::notEmpty())->assert($credentials);
} catch (ValidationException $e) {
$errors = $e->findMessages(['email', 'password']);
throw new \pmill\Doctrine\Rest\Exception\ValidationException($errors);
}
$password = $credentials['password'];
unset($credentials['password']);
/** @var User $user */
$user = $this->authenticationService->authenticateWithCredentials(User::class, $credentials, $password);
$token = $this->authenticationService->generateTokenFromObject($user);
return ['token' => $token];
}