<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_user_from_request(req):
 """ Just like the Flask.login load_user_from_request If you need to customize the user loading from your database, the FlaskBitjws.get_user_by_key method is the one to modify. :param req: The flask request to load a user based on. """

    load_jws_from_request(req)
    if not hasattr(req, 'jws_header') or req.jws_header is None or not \
            'iat' in req.jws_payload:
        current_app.logger.info("invalid jws request.")
        return None

    ln = current_app.bitjws.get_last_nonce(current_app,
                                           req.jws_header['kid'],
                                           req.jws_payload['iat'])

    if (ln is None or 'iat' not in req.jws_payload or
            req.jws_payload['iat'] * 1000 <= ln):
        current_app.logger.info("invalid nonce. lastnonce: %s" % ln)
        return None

    rawu = current_app.bitjws.get_user_by_key(current_app,
                                              req.jws_header['kid'])
    if rawu is None:
        return None
    current_app.logger.info("logging in user: %s" % rawu)
    return FlaskUser(rawu)