import base64 import json from typing import Mapping def encode_payload(payload): if isinstance(payload, Mapping): try: payload = json.dumps( payload, separators=(',', ':'), ).encode('utf-8') except ValueError: pass return base64url_encode(payload) def base64url_encode(input): """Helper method to base64url_encode a string. Args: input (str): A base64url_encoded string to encode. """ return base64.urlsafe_b64encode(input).replace(b'=', b'')