Verify JWT claims.

    All times must be UTC unix timestamps.

    These claims will be verified:

    - iat: issued at time. If JWT was issued more than an hour ago it is
      rejected.
    - exp: expiration time.

    All exceptions are derived from
    :class:`mozpay.exc.InvalidJWT`.
    For expirations a
    :class:`mozpay.exc.RequestExpired`
    exception will be raised.

def verify_claims(app_req, issuer=None):
    """
    Verify JWT claims.

    All times must be UTC unix timestamps.

    These claims will be verified:

    - iat: issued at time. If JWT was issued more than an hour ago it is
      rejected.
    - exp: expiration time.

    All exceptions are derived from
    :class:`mozpay.exc.InvalidJWT`.
    For expirations a
    :class:`mozpay.exc.RequestExpired`
    exception will be raised.
    """
    if not issuer:
        issuer = _get_issuer(app_req=app_req)
    try:
        float(str(app_req.get('exp')))
        float(str(app_req.get('iat')))
    except ValueError:
        _re_raise_as(InvalidJWT,
                     'JWT had an invalid exp (%r) or iat (%r) '
                     % (app_req.get('exp'), app_req.get('iat')),
                     issuer=issuer)