public function sign(Token $token, $prefix = self::PREFIX)
    {
        $auth = [
            $prefix . 'version'   => self::VERSION,
            $prefix . 'key'       => $token->key(),
            $prefix . 'timestamp' => $this->timestamp,
        ];

        $payload = $this->payload($auth, $this->params);

        $signature = $this->signature($payload, $this->method, $this->uri, $token->secret());

        $auth[$prefix . 'signature'] = $signature;

        return $auth;
    }