def _get_jwt()

in scripts/provisioning/utils.py [0:0]


def _get_jwt(service_name):
  """Checks to see if the global JWT is still valid and either returns it or
  generates a new one."""
  global JWT
  if JWT is None:
    JWT = _generate_jwt(service_name)
  else:
    try:
      # This will throw a ValueError if the JWT is expired by over 5 min
      decoded = jwt.decode(JWT, verify=False)

      # Err on the side of caution and just create a new JWT if we're at expiry
      if time.time() >= decoded['exp']:
        JWT = _generate_jwt(service_name)
    except ValueError:
      JWT = _generate_jwt(service_name)
  return JWT