code: def _decode(self, token, verify=True):
          
          secret = self._get_secret()
          algorithm = self._get_algorithm()
          kwargs = {}
  
          for claim in self.claims:
              if claim != "exp":
                  setting = "claim_{}".format(claim.lower())
                  if setting in self.config:  # noqa
                      value = self.config.get(setting)
                      kwargs.update({claim_label[claim]: value})
  
          kwargs["leeway"] = int(self.config.leeway())
          if "claim_aud" in self.config:  # noqa
              kwargs["audience"] = self.config.claim_aud()
          if "claim_iss" in self.config:  # noqa
              kwargs["issuer"] = self.config.claim_iss()
  
          decoded = jwt.decode(
              token,
              secret,
              algorithms=[algorithm],
              verify=verify,
              options={"verify_exp": self.config.verify_exp()},
              **kwargs
          )
          return decoded
docs: Take a JWT and return a decoded payload. Optionally, will verify
          the claims on the token.