diff --git a/src/Client.cc b/src/Client.cc index a9df576..4c6c1fa 100644 --- a/src/Client.cc +++ b/src/Client.cc @@ -138,7 +138,8 @@ Client::Client(const Napi::CallbackInfo &info) : Napi::ObjectWrap(info) if (clientConfig.Has(CFG_AUTH) && clientConfig.Get(CFG_AUTH).IsObject()) { Napi::Object obj = clientConfig.Get(CFG_AUTH).ToObject(); if (obj.Has(CFG_AUTH_PROP) && obj.Get(CFG_AUTH_PROP).IsObject()) { - Authentication *auth = Authentication::Unwrap(obj.Get(CFG_AUTH_PROP).ToObject()); + this->authRef_ = Napi::Persistent(obj.Get(CFG_AUTH_PROP).As()); + Authentication *auth = Authentication::Unwrap(this->authRef_.Value()); pulsar_client_configuration_set_auth(cClientConfig.get(), auth->GetCAuthentication()); } } diff --git a/src/Client.h b/src/Client.h index ee81bb5..b761d36 100644 --- a/src/Client.h +++ b/src/Client.h @@ -54,6 +54,7 @@ class Client : public Napi::ObjectWrap { std::shared_ptr cClient; std::shared_ptr cClientConfig; pulsar_logger_level_t logLevel = pulsar_logger_level_t::pulsar_INFO; + Napi::ObjectReference authRef_; Napi::Value CreateProducer(const Napi::CallbackInfo &info); Napi::Value Subscribe(const Napi::CallbackInfo &info);