docs: def init_config(self, app):
          """Initialize configuration.
  
          :param app: The Flask application.
          """
          try:
              pkg_resources.get_distribution('celery')
              app.config.setdefault(
                  "ACCOUNTS_USE_CELERY", not (app.debug or app.testing))
          except pkg_resources.DistributionNotFound:  # pragma: no cover
              app.config.setdefault("ACCOUNTS_USE_CELERY", False)
  
          # Register Invenio legacy password hashing
          register_crypt_handler(InvenioAesEncryptedEmail)
  
          # Change Flask defaults
          app.config.setdefault(
              'SESSION_COOKIE_SECURE',
              not app.debug
          )
  
          # Change Flask-Security defaults
          app.config.setdefault(
              'SECURITY_PASSWORD_SALT',
              app.config['SECRET_KEY']
          )
  
          # Set JWT secret key
          app.config.setdefault(
              'ACCOUNTS_JWT_SECRET_KEY',
              app.config.get(
                  'ACCOUNTS_JWT_SECRET_KEY',
                  app.config.get('SECRET_KEY')
              )
          )
  
          config_apps = ['ACCOUNTS', 'SECURITY_']
          for k in dir(config):
              if any([k.startswith(prefix) for prefix in config_apps]):
                  app.config.setdefault(k, getattr(config, k))
  
          # Set Session KV store
          if app.config.get('ACCOUNTS_SESSION_REDIS_URL'):
              import redis
              from simplekv.memory.redisstore import RedisStore
  
              session_kvstore = RedisStore(redis.StrictRedis.from_url(
                  app.config['ACCOUNTS_SESSION_REDIS_URL']))
          else:
              from simplekv.memory import DictStore
  
              session_kvstore = DictStore()
  
          self.kvsession_extension = KVSessionExtension(
              session_kvstore, app)