<?php
namespace AutomarketBundle\Component;
use Symfony\Component\HttpFoundation\Session\Session;
class EstimateCaptcha
{
/**
* @var Session
*/
private $session;
const KEY_PREFIX = 'estimate_token';
public function __construct(Session $session)
{
$this->session = $session;
}
public function generateToken()
{
$tokensArray = $this->session->get(self::KEY_PREFIX);
if(!$tokensArray) {
$tokensArray = [];
}
$token = md5('reafsdgnd'.uniqid().time());
array_push($tokensArray, $token);
$this->session->set(self::KEY_PREFIX, $tokensArray);
return $token;
}
public function validateToken($token): bool
{
$tokensArray = $this->session->get(self::KEY_PREFIX);
return is_array($tokensArray) && in_array($token, $tokensArray);
}
public function removeToken($token)
{
$tokensArray = $this->session->get(self::KEY_PREFIX);
if ($key = array_search($token, $tokensArray)) {
unset($tokensArray[$key]);
$this->session->set(self::KEY_PREFIX, $tokensArray);
}
}
}