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