我在我的系统中使用 Symfony Security 和自定义用户提供程序。它通过网络服务为用户提供服务。
我根据本教程(http://symfony.com/doc/current/cookbook/security/custom_provider.html)配置提供程序。
这是检查用户的功能:
public function loadUserByUsername($username)
{
$userData = webServiceCheckUser($username);
// return an array whit user credentials
if ($userData) {
$password = $userData['password'];
$salt = $userData['salt'];
$roles = $userData['roles'];
$user = new WebserviceUser($username, $password, $salt, $roles);
return $user;
}
throw new UsernameNotFoundException(sprintf('Username "%s" does not exist.', $username));
}
这很好用,该函数webServiceCheckUser()
使用用户名调用 Web 服务,然后返回一个包含用户数据的数组。但是现在我需要通过另一个需要用户的用户名和加密密码来验证他的网络服务来检查用户。我有一个加密纯文本密码的功能,就像 Web 服务正在等待一样,但是我无法获取用户在自定义用户提供程序类中的表单登录中输入的密码。如果我可以得到已经加密的密码也可以。任何一个都可以解决问题。
有没有办法做到这一点?