我的应用程序上有一个经过身份验证的部分,但身份验证是通过 oauth 到 3rd 方服务完成的。我从服务中收到 200 回调,现在我创建/找到我的用户并将他设置为已登录。
所以我的提供者是:
providers:
users:
entity: { class: MainBundle:User, property: id }
我的用户实现了安全的 UserInterface,尽管我的用户实体上没有用户名、密码等属性。我假设 id 是我可以使用的唯一标识符。
我的令牌设置如下:
$token = new UsernamePasswordToken($user, null, 'secured_area', $user->getRoles());
$this->securityContext->setToken($token);
我现在希望在不使用 JMS 捆绑的情况下执行此操作;我的序列化如下所示:
/**
* Serialize
* @return string|void
*/
public function serialize()
{
return serialize(array(
'id' => $this->getId(),
'display_name' => $this->getDisplayName(),
'email' => $this->getEmail(),
));
}
/**
* Unserialize
* @return mixed|void
*/
public function unserialize($data)
{
$data = unserialize($data);
$this->setId($data['id']);
$this->setDisplayName($data['display_name']);
$this->setEmail($data['email']);
return $this;
}
使用上面我得到一个无限循环重定向。
起初我只序列化了 id,但随后用户的所有其他属性都不可用。
然后我尝试序列化整个对象($this),但这给了我 1000 的 xdebug 嵌套级别错误。
我有点迷失如何使这种身份验证与序列化一起工作