public function getTokenArray(string $lockTo = ''): array
    {
        if ($this->useNativeSession) {
            if (!isset($_SESSION[$this->sessionIndex])) {
                $_SESSION[$this->sessionIndex] = [];
            }
        } elseif (!isset($this->session[$this->sessionIndex])) {
            $this->session[$this->sessionIndex] = [];
        }

        if (empty($lockTo)) {
            /** @var string $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 = Base64UrlSafe::encode(
                \hash_hmac(
                    $this->hashAlgo,
                    isset($this->server['REMOTE_ADDR'])
                        ? (string) $this->server['REMOTE_ADDR']
                        : '127.0.0.1',
                    (string) Base64UrlSafe::decode($token),
                    true
                )
            );
        }

        return [
            $this->formIndex => $index,
            $this->formToken => $token,
        ];
    }
public function getTokenArray(string $lockTo = ''): array
    {
        if ($this->useNativeSession) {
            if (!isset($_SESSION[$this->sessionIndex])) {
                $_SESSION[$this->sessionIndex] = [];
            }
        } elseif (!isset($this->session[$this->sessionIndex])) {
            $this->session[$this->sessionIndex] = [];
        }

        if (empty($lockTo)) {
            /** @var string $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 = Base64UrlSafe::encode(
                \hash_hmac(
                    $this->hashAlgo,
                    isset($this->server['REMOTE_ADDR'])
                        ? (string) $this->server['REMOTE_ADDR']
                        : '127.0.0.1',
                    (string) Base64UrlSafe::decode($token),
                    true
                )
            );
        }

        return [
            $this->formIndex => $index,
            $this->formToken => $token,
        ];
    }
public function getTokenArray ( string $ lockTo = '' ) : array { if ( $ this -> useNativeSession ) { if ( ! isset ( $ _SESSION [ $ this -> sessionIndex ] ) ) { $ _SESSION [ $ this -> sessionIndex ] = [ ] ; } } elseif ( ! isset ( $ this -> session [ $ this -> sessionIndex ] ) ) { $ this -> session [ $ this -> sessionIndex ] = [ ] ; } if ( empty ( $ lockTo ) ) { /** @var string $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 = Base64UrlSafe :: encode ( \ hash_hmac ( $ this -> hashAlgo , isset ( $ this -> server [ 'REMOTE_ADDR' ] ) ? ( string ) $ this -> server [ 'REMOTE_ADDR' ] : '127.0.0.1' , ( string ) Base64UrlSafe :: decode ( $ token ) , true ) ) ; } return [ $ this -> formIndex => $ index , $ this -> formToken => $ token , ] ; }
Retrieve a token array for unit testing endpoints

@param string $lockTo
@return array

@throws \Exception
@throws \TypeError
Retrieve a token array for unit testing endpoints