$userIdentifier =
$request->
get('user'
);
if (!
$hash =
$request->
get('hash'
)) { throw new InvalidLoginLinkException('Missing "hash" parameter.'
);
} if (!
$expires =
$request->
get('expires'
)) { throw new InvalidLoginLinkException('Missing "expires" parameter.'
);
} try { $this->signatureHasher->
acceptSignatureHash($userIdentifier,
$expires,
$hash);
$user =
$this->userProvider->
loadUserByIdentifier($userIdentifier);
$this->signatureHasher->
verifySignatureHash($user,
$expires,
$hash);
} catch (UserNotFoundException
$e) { throw new InvalidLoginLinkException('User not found.', 0,
$e);
} catch (ExpiredSignatureException
$e) { throw new ExpiredLoginLinkException(ucfirst(str_ireplace('signature', 'login link',
$e->
getMessage())), 0,
$e);
} catch (InvalidSignatureException
$e) { throw new InvalidLoginLinkException(ucfirst(str_ireplace('signature', 'login link',
$e->
getMessage())), 0,
$e);
}