defclaims(self,token:str)->typing.Tuple[str,typing.Dict[str,str]]:errors:typing.Dict[str,str]={}forproviderinself._providers:try:returnprovider,self._provider_claims(provider,token)exceptjose.exceptions.ExpiredSignatureErrorase:# if the token has expired, it is at least from this provider.logger.debug("Token has expired.")errors=str(e)breakexceptjose.exceptions.JWTClaimsErrorase:logger.debug("Invalid claims")errors[provider]=str(e)exceptjose.exceptions.JOSEErrorase:# the catch-all of Joselogger.warning(e,exc_info=True)errors[provider]=str(e)raiseInvalidToken(errors)