Skip to main content
Version: v4

Authentication

Create User

Before you login the user, you must add the user to CometChat.

  1. For proof of concept/MVPs: Create the user using the CometChat Dashboard.
  2. For production apps: Use the CometChat Create User API to create the user when your user signs up in your app.
info

We have setup 5 users for testing having UIDs: SUPERHERO1, SUPERHERO2, SUPERHERO3, SUPERHERO4 and SUPERHERO5.

Once initialization is successful, you will need to log the user into CometChat using the login() method.

We recommend you call the CometChat login() method once your user logs into your app. The login() method needs to be called only once.

Important

The CometChat SDK maintains the session of the logged-in user within the SDK. Thus you do not need to call the login method for every session. You can use the CometChat.getLoggedInUser() method to check if there is any existing session in the SDK. This method should return the details of the logged-in user. If this method returns null, it implies there is no session present within the SDK and you need to log the user into ComeChat.

Login using Auth Key

This straightforward authentication method is ideal for proof-of-concept (POC) development or during the early stages of application development. For production environments, however, we strongly recommend using an AuthToken instead of an Auth Key to ensure enhanced security.

String UID = "user_id"; // Replace with the UID of the user to login
String authKey = "AUTH_KEY"; // Replace with your App Auth Key

final user = await CometChat.getLoggedInUser();
if (user == null) {
await CometChat.login(UID, authKey,
onSuccess: (User user) {
debugPrint("Login Successful : $user" );
}, onError: (CometChatException e) {
debugPrint("Login failed with exception: ${e.message}");
});
}
ParameterDescription
UIDThe UID of the user that you would like to login
authKeyCometChat App Auth Key

After the user logs in, their information is returned in the User object.

Login using Auth Token

This advanced authentication procedure does not use the Auth Key directly in your client code thus ensuring safety.

  1. Create a User via the CometChat API when the user signs up in your app.
  2. Create an Auth Token via the CometChat API for the new user every time the user logs in to your app.
  3. Pass the Auth Token to your client and use it in the login() method.
String authToken = "AUTH_TOKEN";
var user = await CometChat.getLoggedInUser(onSuccess: (_){}, onError: (_){});
if (user == null) {
if(authToken!=null){
await CometChat.loginWithAuthToken(authToken,
onSuccess: (User loggedInUser){
debugPrint("Login Successful : $user" );
}, onError: ( CometChatException e){
debugPrint("Login failed with exception: ${e.message}");
});
}
}
ParameterDescription
authToken
Auth Token of the user you would like to login

After the user logs in, their information is returned in the User object.

Logout

You can use the logout() method to log out the user from CometChat. We suggest you call this method once your user has been successfully logged out from your app.

CometChat.logout( onSuccess: ( successMessage) {
debugPrint("Logout successful with message $successMessage");
}, onError: (CometChatException e ){
debugPrint("Logout failed with exception: ${e.message}");
}
);