Как сериализовать пользователя в отношении аутентификации?

У меня есть аутентифицированный раздел в моем приложении, но аутентификация выполняется через oauth для сторонней службы. Я получаю 200 обратных вызовов от службы, теперь я создаю / нахожу своего пользователя и устанавливаю его как зарегистрированный.

Поэтому мой провайдер:

providers: users: entity: { class: MainBundle:User, property: id } 

Мой пользователь реализует пользовательский интерфейс безопасности, хотя у меня нет имени пользователя, пароля и т. Д. В моей пользовательской сущности. Я предполагаю, что тогда id является единственным идентификатором, который я могу использовать.

Мой токен устанавливается следующим образом:

 $token = new UsernamePasswordToken($user, null, 'secured_area', $user->getRoles()); $this->securityContext->setToken($token); 

Я хочу сделать это, не используя JMS bundle; моя сериализация выглядит следующим образом:

 /** * 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; } 

Используя вышеизложенное, я получаю перенаправление бесконечного цикла.

Сначала я только сериализовал идентификатор, но тогда все остальные свойства пользователя недоступны.

Затем я попробовал сериализацию всего объекта ($ this), но это дает мне ошибку уровня вложенности xdebug 1000.

Я немного потерял, как сделать эту работу аутентификации с сериализацией

security.yml

 providers: users: entity: { class: MainBundle:User, property: id } 

логика логина

 $token = new UsernamePasswordToken($user, null, 'secured_area', $user->getRoles()); $this->securityContext->setToken($token); 

Я вынул сериализацию из пользовательской сущности, также не применяя равномерный интерфейс. Также не имеют свойств интерфейса, хотя это необходимо:

 public function getUsername() { return $this->getId(); }