Authentication
Create User
Before you log in a user, you must add the user to CometChat.
- For proof of concept/MVPs: Create the user using the CometChat Dashboard.
- For production apps: Use the CometChat Create User API to create the user when your user signs up in your app.
We have setup 5 users for testing having UIDs: cometchat-uid-1
, cometchat-uid-2
, cometchat-uid-3
, cometchat-uid-4
and cometchat-uid-5
.
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 but the getLoggedInUser() needs to be checked every-time when the app starts and if it returns null then you need to call the login method.
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.
The login method needs to be called in the following scenarios:
- When the user is logging into the App for the first time.
- If the CometChat.getLoggedInUser() function returns nil.
- Swift
- Objective C
let uid = "cometchat-uid-1"
let authKey = "AUTH_KEY"
if CometChat.getLoggedInUser() == nil {
CometChat.login(UID: uid, authkey: authKey, onSuccess: { (user) in
print("Login successful : " + user.stringValue())
}) { (error) in
print("Login failed with error: " + error.errorDescription);
}
}
NSString *uid = @"cometchat-uid-1";
NSString *authkey = @"YOUR_AUTH_KEY";
[CometChat loginWithUID:uid authkey:authey onSuccess:^(User * user) {
NSLog(@"Login successful : %@",[user stringValue]);
} onError:^(CometChatException * error) {
NSLog(@"Login failed with error:%@",[error errorDescription]);
}];
Parameter | Description |
---|---|
UID | The UID of the user that you would like to login |
authKey | CometChat Auth Key |
The login()
method returns the User
object containing all the information of the logged-in user.
Login using Auth Token
This advanced authentication procedure does not use the Auth Key directly in your client code thus ensuring safety.
- Create a user via the CometChat API when the user signs up in your app.
- Create an Auth Token via the CometChat API for the new user and save the token in your database.
- Load the Auth Token in your client and pass it to the
login()
method.
The login method needs to be called in the following scenarios:
- When the user is logging into the App for the first time.
- If the CometChat.getLoggedInUser() function returns nil.
- Swift
- Objective C
let authToken = "YOUR_AUTH_TOKEN";
if CometChat.getLoggedInUser() == nil {
CometChat.login(authToken: authToken , onSuccess: { (user) in
print("Login successful : " + user.stringValue())
}) { (error) in
print("Login failed with error: " + error.errorDescription);
}
}
NSString *authToken = @"YOUR_AUTH_TOKEN";
[CometChat loginWithAuthToken:authToken onSuccess:^(User * user) {
__ Login Successful
NSLog(@"Login Successful : %@",[user stringValue]);
} onError:^(CometChatException * error) {
__ Login error
NSLog(@"Login failed with exception: %@",[error errorDescription]);
}];
Parameter | Description |
---|---|
authToken | Auth Token of the user you would like to login |
The login()
method returns the User
object containing all the information of the logged-in user.
Logout
You can use the logout()
method to log out the user from CometChat.
- Swift
- Objective C
CometChat.logout(onSuccess: { (response) in
print("Logout successfully.")
}) { (error) in
print("logout failed with error: " + error.errorDescription);
}
[CometChat logoutOnSuccess:^(NSString * response) {
__ Logout Success
NSLog(@"%@", response);
} onError:^(CometChatException * error) {
__ Logout error
NSLog(@"%@",[error errorDescription]);
}];