您的位置:首页 > 其它

怎么创建自定义的userprovider symfony官网翻译

2017-05-11 00:00 239 查看
部分的symfony的安全认证机制都是依赖于user provider的,当一个用户提交了一个用户名和密码,symfony安全认证机制会要求userprovider返回一个user对象,然后框架检查看密码是否正确,然后做出相应的标记存储在当前的session中。Userprovider 可以是一个数据库表,一个文件,一个服务等。

user provider 必须实现userInterface接口,EquatableInterface这个接口也是可以实现一下的,实现其中关于password的一致性的判断:

public function isEqualTo(UserInterface $user)
{
if (!$user instanceof WebserviceUser) {   //判断是否是user provider的一个实例
return false;
}

if ($this->password !== $user->getPassword()) {  //判断密码是否正确
return false;
}

if ($this->salt !== $user->getSalt()) {
return false;
}

if ($this->username !== $user->getUsername()) {
return false;
}

return true;
}

创建好了一个user的类,接下来要把它变成一个user provider:

将这个类定义成一个web service,然后在安全的配置文件中进行配置就好了。

当然也可以是Entity等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: