public function verify()
    {
        // Check if time is expired
        $time = $this->request->getQuery('timestamp');
        if ($this->expireTime && time() - $time > $this->expireTime) {
            return false;
        }

        // Remove signature parameters
        $query = $this->request->getParameterReference('get');
        $token = $this->request->getQuery('signature');
        unset($query['signature']);

        $timestamp = $query['timestamp'];

        $query = $this->filterKeys($query, $this->params);

        $query['timestamp'] = $timestamp;

        return $this->generateToken($query) == $token;
    }