diff --git a/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift b/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift
index baf5ae9ca017bd9cb89acdfaacdf0fde1fd6846c..d871f5341027e36456e622959b30e36ee26da163 100644
--- a/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift
+++ b/Sources/XXMessengerClient/Messenger/Functors/MessengerConnect.swift
@@ -21,6 +21,7 @@ extension MessengerConnect {
       }
       env.e2e.set(try env.login(
         cMixId: cMix.getId(),
+        authCallbacks: env.authCallbacks.registered(),
         identity: try cMix.makeLegacyReceptionIdentity(),
         e2eParamsJSON: env.getE2EParams()
       ))
diff --git a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift
index fb780353631b32f3f4bcf686bf60f3c3e38703c3..7654bc26adca7ccf82be5d8836b954af40e38a73 100644
--- a/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift
+++ b/Tests/XXMessengerClientTests/Messenger/Functors/MessengerConnectTests.swift
@@ -8,13 +8,14 @@ final class MessengerConnectTests: XCTestCase {
     struct DidLogIn: Equatable {
       var ephemeral: Bool
       var cMixId: Int
-      var authCallbacksProvided: Bool
       var identity: ReceptionIdentity
       var e2eParamsJSON: Data
     }
 
     var didLogIn: [DidLogIn] = []
+    var didLogInWithAuthCallbacks: [AuthCallbacks?] = []
     var didSetE2E: [E2E?] = []
+    var didHandleAuthCallbacks: [AuthCallbacks.Callback] = []
 
     let cMixId = 1234
     let receptionId = ReceptionIdentity.stub
@@ -29,14 +30,19 @@ final class MessengerConnectTests: XCTestCase {
     }
     env.e2e.set = { didSetE2E.append($0) }
     env.getE2EParams.run = { e2eParams }
+    env.authCallbacks.registered = {
+      AuthCallbacks { callback in
+        didHandleAuthCallbacks.append(callback)
+      }
+    }
     env.login.run = { ephemeral, cMixId, authCallbacks, identity, e2eParamsJSON in
       didLogIn.append(.init(
         ephemeral: ephemeral,
         cMixId: cMixId,
-        authCallbacksProvided: authCallbacks != nil,
         identity: identity,
         e2eParamsJSON: e2eParamsJSON
       ))
+      didLogInWithAuthCallbacks.append(authCallbacks)
       return .unimplemented
     }
     let connect: MessengerConnect = .live(env)
@@ -47,12 +53,19 @@ final class MessengerConnectTests: XCTestCase {
       DidLogIn(
         ephemeral: false,
         cMixId: 1234,
-        authCallbacksProvided: false,
         identity: .stub,
         e2eParamsJSON: e2eParams
       )
     ])
+    XCTAssertEqual(didLogInWithAuthCallbacks.compactMap { $0 }.count, 1)
     XCTAssertEqual(didSetE2E.compactMap { $0 }.count, 1)
+
+    didLogInWithAuthCallbacks.forEach { authCallbacks in
+      [AuthCallbacks.Callback].stubs.forEach { callback in
+        authCallbacks?.handle(callback)
+      }
+    }
+    XCTAssertNoDifference(didHandleAuthCallbacks, .stubs)
   }
 
   func testConnectWithoutCMix() {
@@ -79,6 +92,7 @@ final class MessengerConnectTests: XCTestCase {
       cMix.makeLegacyReceptionIdentity.run = { throw error }
       return cMix
     }
+    env.authCallbacks.registered = { .unimplemented }
     let connect: MessengerConnect = .live(env)
 
     XCTAssertThrowsError(try connect()) { err in
@@ -97,6 +111,7 @@ final class MessengerConnectTests: XCTestCase {
       cMix.makeLegacyReceptionIdentity.run = { .stub }
       return cMix
     }
+    env.authCallbacks.registered = { .unimplemented }
     env.getE2EParams.run = { "e2e-params".data(using: .utf8)! }
     env.login.run = { _, _, _, _, _ in throw error }
     let connect: MessengerConnect = .live(env)