def METHOD_NAME(self, assertion):
    """Extract JWT payload claims from request "assertion", per
    `Section 3.1`_.
    :param assertion: assertion string value in the request
    :return: JWTClaims
    :raise: InvalidGrantError
    .. _`Section 3.1`: https://tools.ietf.org/html/rfc7523#section-3.1
    """
    try:
        claims = jwt.decode(
            assertion, self.resolve_public_key,
            claims_options=self.CLAIMS_OPTIONS)
        claims.validate()
    except JoseError as e:
        log.debug('Assertion Error: %r', e)
        raise InvalidGrantError(description=e.description)
    return claims