code: def _sign_multi(self, payload, signing_keys):
          
          if not isinstance(payload, Mapping):
              raise TypeError('Expecting a mapping object, as only '
                              'JSON objects can be used as payloads.')
  
          if not isinstance(signing_keys, list):
              raise TypeError("Expecting a list of keys")
  
          headers = []
          signatures = []
          payload_b64 = base64url_encode(json_encode(payload))
  
          for sk in signing_keys:
              signing_key = load_signing_key(sk, self.crypto_backend)
  
              header = self._make_header()
              header_b64 = base64url_encode(json_encode(header))
              signature_b64 = self._make_signature(header_b64, payload_b64, signing_key)
  
              headers.append(header_b64)
              signatures.append(signature_b64)
  
          jwt = {
              "header": headers,
              "payload": payload_b64,
              "signature": signatures
          }
  
          return jwt
docs: Make a multi-signature JWT.
          Returns a JSON-structured JWT.
  
          TODO: support multiple types of signatures