public function getTokenArray(string $lockTo = '') : array
{
if (!isset($this->session[$this->sessionIndex])) {
$this->session[$this->sessionIndex] = [];
}
if (empty($lockTo)) {
$lockTo = isset($this->server['REQUEST_URI']) ? $this->server['REQUEST_URI'] : '/';
}
if (\preg_match('#/$#', $lockTo)) {
$lockTo = Binary::safeSubstr($lockTo, 0, Binary::safeStrlen($lockTo) - 1);
}
list($index, $token) = $this->generateToken($lockTo);
if ($this->hmac_ip !== false) {
// Use HMAC to only allow this particular IP to send this request
$token = Base64::encode(\hash_hmac($this->hashAlgo, isset($this->server['REMOTE_ADDR']) ? $this->server['REMOTE_ADDR'] : '127.0.0.1', Base64::decode($token), true));
}
return [$this->formIndex => $index, $this->formToken => $token];
}