/**
* Create a cookie for trusted computer.
*
* @param Request $request
* @param mixed $user
*
*
* @return Cookie
*/
public function createTrustedCookie(Request $request, $user)
{
$tokenList = $request->cookies->get($this->cookieName, null);
// Generate new token
$token = $this->tokenGenerator->generateToken(32);
$tokenList .= ($tokenList !== null ? ';' : '') . $token;
$validUntil = $this->getDateTimeNow()->add(new \DateInterval('PT' . $this->cookieLifetime . 'S'));
// Add token to user entity
$this->trustedComputerManager->addTrustedComputer($user, $token, $validUntil);
$domain = null;
$requestHost = $request->getHost();
if ($requestHost !== 'localhost') {
$domain = '.' . $requestHost;
}
// Create cookie
return new Cookie($this->cookieName, $tokenList, $validUntil, '/', $domain, $this->cookieSecure);
}