> ## 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:

| Callback Method                     | Information                                                                                                                                                      |
| ----------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| loginSuccess(User user)             | Informs you that the login was successful and provides you with a user object containing the data for the user that logged in                                    |
| loginFailure(CometChatException e)  | 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(CometChatException e) | 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 provided. |

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="Java">
    ```java theme={null}
    CometChat.addLoginListener("UNIQUE_ID", new CometChat.LoginListener() {
      @Override
        public void loginSuccess(User user) {
        Log.d("LoginListener", "loginSuccess " + user.toString());
      }

      @Override
        public void loginFailure(CometChatException e) {
        Log.d("LoginListener", "loginFailure " + e.getMessage());
      }
      
      @Override=
        public void logoutSuccess() {
        Log.d("LoginListener", "logoutSuccess ");
      }

      @Override
        public void logoutFailure(CometChatException e) {
      	Log.d("LoginListener", "logoutFailure ");
      }
    });
    ```
  </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 pas the ID of the listener that needs to be removed.

<Tabs>
  <Tab title="Java">
    ```java theme={null}
    CometChat.removeLoginListener("UNIQUE_ID");
    ```
  </Tab>
</Tabs>
