> ## Documentation Index
> Fetch the complete documentation index at: https://cometchat-013b37f0.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Login Listeners

The CometChat SDK provides you with real-time updates for the `login` and `logout` events. This can be achieved using the `LoginListener` class provided. LoginListener consists of 4 events that can be triggered. These are as follows:

Login Listener provides you with the below 4 methods:

| Callback Method      | Information                                                                                                                                                      |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| loginSuccess(event)  | Informs you that the login was successful and provides you with a user object containing the data for the user that logged in.                                   |
| loginFailure(event)  | Informs you about the failure while logging in the user and provides you with the reason for the failure wrapped in an object of the `CometChatException` class. |
| logoutSuccess()      | Informs you about the user being logged out successfully.                                                                                                        |
| logoutFailure(event) | Informs you about the failure while logging out the user. The reason for the failure can be obtained from the object of the `CometChatException` class.          |

To add the `LoginListener`, you need to use the `addLoginListener()` method provided by the SDK which takes a unique identifier for the listener and of the the `LoginListener` class itself.

<Tabs>
  <Tab title="Add LoginListener">
    ```
    var listenerID = "UNIQUE_LISTENER_ID";
    CometChat.addLoginListener(
      listenerID,
      new CometChat.LoginListener({
        loginSuccess: (e) => {
          console.log("LoginListener :: loginSuccess", e);
        },
        loginFailure: (e) => {
          console.log("LoginListener :: loginFailure", e);
        },
        logoutSuccess: () => {
          console.log("LoginListener :: logoutSuccess");
        },
        logoutFailure: (e) => {
          console.log("LoginListener :: logoutFailure", e);
        },
      })
    );
    ```
  </Tab>
</Tabs>

In order to stop receiving events related to login and logout you need to use the `removeLoginListener()` method provided by the SDK and pass the ID of the listener that needs to be removed.

<Tabs>
  <Tab title="Remove Login Listener">
    ```
    var listenerID = "UNIQUE_LISTENER_ID";
    CometChat.removeLoginListener(listenerID);
    ```
  </Tab>
</Tabs>
