code: def makeHawkExt(self):
          
          o = self.options
          c = o.get('credentials', {})
          if c.get('clientId') and c.get('accessToken'):
              ext = {}
              cert = c.get('certificate')
              if cert:
                  if six.PY3 and isinstance(cert, six.binary_type):
                      cert = cert.decode()
                  if isinstance(cert, six.string_types):
                      cert = json.loads(cert)
                  ext['certificate'] = cert
  
              if 'authorizedScopes' in o:
                  ext['authorizedScopes'] = o['authorizedScopes']
  
              # .encode('base64') inserts a newline, which hawk doesn't
              # like but doesn't strip itself
              return utils.makeB64UrlSafe(utils.encodeStringForB64Header(utils.dumpJson(ext)).strip())
          else:
              return {}
docs: Make an 'ext' for Hawk authentication