/** * Persist session data to storage. */ public function persistData() { if ($this->authorisation === null) { return; } /** @var AccessToken $accessToken */ foreach ($this->authorisation->getAccessTokens() as $provider => $accessToken) { $tokenEntities = $this->records->getTokensByGuid($this->authorisation->getGuid()); if ($tokenEntities === false) { $tokenEntities[] = new Storage\Entity\Token(); } /** @var Storage\Entity\Token $tokenEntity */ foreach ($tokenEntities as $tokenEntity) { $tokenEntity->setGuid($this->authorisation->getGuid()); $tokenEntity->setToken((string) $accessToken); $tokenEntity->setTokenType('access_token'); $tokenEntity->setTokenData($accessToken); $tokenEntity->setExpires($accessToken->getExpires()); $tokenEntity->setCookie($this->authorisation->getCookie()); $this->records->saveToken($tokenEntity); } } $this->session->set(self::SESSION_AUTHORISATION, json_encode($this->authorisation)); }