AI Integration Quick Reference
// Check existing session
const user = await CometChat . getLoggedinUser ();
// Login with Auth Key (development only)
CometChat . login ( "cometchat-uid-1" , "AUTH_KEY" ). then ( user => console . log ( "Logged in:" , user ));
// Login with Auth Token (production)
CometChat . login ( "AUTH_TOKEN" ). then ( user => console . log ( "Logged in:" , user ));
// Logout
CometChat . logout (). then (() => console . log ( "Logged out" ));
Create users via: Dashboard (testing) | REST API (production)
Test UIDs: cometchat-uid-1 through cometchat-uid-5
After initializing the SDK, the next step is to authenticate your user. CometChat provides two login methods — Auth Key for quick development, and Auth Token for production — both accessed through the login() method.
How It Works
Before You Log In
Create a User
A user must exist in CometChat before they can log in.
During development: Create users from the CometChat Dashboard . Five test users are already available with UIDs cometchat-uid-1 through cometchat-uid-5.
In production: Call the Create User REST API when a user signs up in your app.
You can also create users from the client side using createUser() (development only):
let authKey : string = "AUTH_KEY" ;
let uid : string = "user1" ;
let name : string = "Kevin" ;
let user : CometChat . User = new CometChat . User ( uid );
user . setName ( name );
CometChat . createUser ( user , authKey ). then (
( user : CometChat . User ) => {
console . log ( "User created:" , user );
},
( error : CometChat . CometChatException ) => {
console . log ( "Error:" , error );
}
);
let authKey = "AUTH_KEY" ;
let uid = "user1" ;
let name = "Kevin" ;
let user = new CometChat . User ( uid );
user . setName ( name );
CometChat . createUser ( user , authKey ). then (
( user ) => {
console . log ( "User created:" , user );
},
( error ) => {
console . log ( "Error:" , error );
}
);
createUser() with Auth Key is for development only. In production, create users server-side via the REST API . See User Management for full details.
Check for an Existing Session
The SDK persists the logged-in user’s session locally. Before calling login(), always check whether a session already exists — this avoids unnecessary login calls and keeps your app responsive.
const user = await CometChat . getLoggedinUser ();
if ( user ) {
// User is already logged in — proceed to your app
}
If getLoggedinUser() returns null, no active session exists and you need to call login().
Login with Auth Key
Auth Key login is the simplest way to get started. Pass a UID and your Auth Key directly from the client.
Auth Keys are meant for development and testing only. For production, use Auth Token login instead. Never ship Auth Keys in client-side code.
const UID : string = "cometchat-uid-1" ;
const authKey : string = "AUTH_KEY" ;
CometChat . getLoggedinUser (). then (
( user : CometChat . User ) => {
if ( ! user ) {
CometChat . login ( UID , authKey ). then (
( user : CometChat . User ) => {
console . log ( "Login Successful:" , { user });
},
( error : CometChat . CometChatException ) => {
console . log ( "Login failed with exception:" , { error });
}
);
}
},
( error : CometChat . CometChatException ) => {
console . log ( "Some Error Occurred" , { error });
}
);
const UID = "cometchat-uid-1" ;
const authKey = "AUTH_KEY" ;
CometChat . getLoggedinUser (). then (
( user ) => {
if ( ! user ) {
CometChat . login ( UID , authKey ). then (
( user ) => {
console . log ( "Login Successful:" , { user });
},
( error ) => {
console . log ( "Login failed with exception:" , { error });
}
);
}
},
( error ) => {
console . log ( "Some Error Occurred" , { error });
}
);
Alternatively, you can use the async/await syntax: const UID = "cometchat-uid-1" ;
const authKey = "AUTH_KEY" ;
try {
const loggedInUser = await CometChat . getLoggedinUser ();
if ( ! loggedInUser ) {
const user = await CometChat . login ( UID , authKey );
console . log ( "Login Successful:" , { user });
}
} catch ( error ) {
console . log ( "Login failed with exception:" , { error });
}
Parameter Description UID The UID of the user to log in authKey Your CometChat Auth Key
On success, the Promise resolves with a User object containing the logged-in user’s details.
Login with Auth Token
Auth Token login keeps your Auth Key off the client entirely. Your server generates a token via the REST API and passes it to the client.
Create the user via the REST API when they sign up (first time only).
Generate an Auth Token on your server and return it to the client.
Pass the token to login().
const authToken : string = "AUTH_TOKEN" ;
CometChat . getLoggedinUser (). then (
( user : CometChat . User ) => {
if ( ! user ) {
CometChat . login ( authToken ). then (
( user : CometChat . User ) => {
console . log ( "Login Successful:" , { user });
},
( error : CometChat . CometChatException ) => {
console . log ( "Login failed with exception:" , { error });
}
);
}
},
( error : CometChat . CometChatException ) => {
console . log ( "Some Error Occurred" , { error });
}
);
const authToken = "AUTH_TOKEN" ;
CometChat . getLoggedinUser (). then (
( user ) => {
if ( ! user ) {
CometChat . login ( authToken ). then (
( user ) => {
console . log ( "Login Successful:" , { user });
},
( error ) => {
console . log ( "Login failed with exception:" , { error });
}
);
}
},
( error ) => {
console . log ( "Some Error Occurred" , { error });
}
);
Alternatively, you can use the async/await syntax: const authToken = "AUTH_TOKEN" ;
try {
const loggedInUser = await CometChat . getLoggedinUser ();
if ( ! loggedInUser ) {
const user = await CometChat . login ( authToken );
console . log ( "Login Successful:" , { user });
}
} catch ( error ) {
console . log ( "Login failed with exception:" , { error });
}
Parameter Description authToken Auth Token generated on your server for the user
On success, the Promise resolves with a User object containing the logged-in user’s details.
Logout
Call logout() when your user logs out of your app. This clears the local session.
CometChat . logout (). then (
( loggedOut : Object ) => {
console . log ( "Logout completed successfully" );
},
( error : CometChat . CometChatException ) => {
console . log ( "Logout failed with exception:" , { error });
}
);
CometChat . logout (). then (
() => {
console . log ( "Logout completed successfully" );
},
( error ) => {
console . log ( "Logout failed with exception:" , { error });
}
);
Alternatively, you can use the async/await syntax: try {
await CometChat . logout ();
console . log ( "Logout completed successfully" );
} catch ( error ) {
console . log ( "Logout failed with exception:" , { error });
}
Login Listener
You can listen for login and logout events in real time using LoginListener. This is useful for updating UI state or triggering side effects when the auth state changes.
Callback Description loginSuccess(event)User logged in successfully. Provides the User object. loginFailure(event)Login failed. Provides a CometChatException . logoutSuccess()User logged out successfully. logoutFailure(event)Logout failed. Provides a CometChatException .
Add a Listener
const listenerID : string = "UNIQUE_LISTENER_ID" ;
CometChat . addLoginListener (
listenerID ,
new CometChat . LoginListener ({
loginSuccess : ( user : CometChat . User ) => {
console . log ( "LoginListener :: loginSuccess" , user );
},
loginFailure : ( error : CometChat . CometChatException ) => {
console . log ( "LoginListener :: loginFailure" , error );
},
logoutSuccess : () => {
console . log ( "LoginListener :: logoutSuccess" );
},
logoutFailure : ( error : CometChat . CometChatException ) => {
console . log ( "LoginListener :: logoutFailure" , error );
}
})
);
let 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 );
}
})
);
Remove a Listener
CometChat . removeLoginListener ( "UNIQUE_LISTENER_ID" );
Always remove login listeners when they’re no longer needed (e.g., on component unmount or page navigation). Failing to remove listeners can cause memory leaks and duplicate event handling.
Next Steps
Send Messages Send your first text, media, or custom message
User Management Create, update, and delete users programmatically
Connection Status Monitor the SDK connection state in real time
All Real-Time Listeners Complete reference for all SDK event listeners