What is user authentication?
We have enhanced the existing mechanism to provide a better, safer, and simpler authentication process. The improved JWT Authentication mechanism verifies the authenticity of your end users and permits them to use the help widget. To access the tickets they submitted, end-users of your app must have an identity to authenticate themselves as a user of the Zoho Desk portal. Zoho Desk makes this authentication possible via the JSON Web Token (JWT).
Zoho Desk supports two authentication modes: Anonymous and JWT.
Anonymous
In this type, end-users are considered guest users. They can only submit tickets, view posts in the User Community, and chat with a customer support agent. They cannot view the tickets they submitted or actively participate in the User Community.
JWT
In this type, end-users are considered authenticated users. In addition to the activities that guest users can perform, authenticated users can view the submitted tickets and actively participate in the User Community (with rights to perform actions such as following a topic, adding a topic, and commenting on existing posts).
What is JWT Authentication?
JWT (JSON Web Token) is a secure and efficient way of exchanging claims between two parties. It is a compact and URL-safe method of representing data that needs to be transferred. JWT is usually used for authentication and authorization purposes. The token is digitally signed, which ensures its authenticity and integrity. JWTs are widely used in modern web applications and APIs to transmit information securely between the client and server.
The following code snippet authenticates users in the SDK. To access all methods related to user authentication, ensure that you include the following import statements.
Swift
- import ZohoDeskPortalAPIKit
Objective-C
- @import ZohoDeskPortalAPIKit;
JWT Token
The token is passed from your app. Kindly refer to the enhanced
JWT authentication mechanism.
Swift
- if !ZohoDeskPortalSDK.isUserLoggedIn
{
ZohoDeskPortalSDK.login(withJWTToken: String)
{ (isSuccess: Bool) in
// isSuccess shows whether the login attempt was successful
// any errors will be logged
}
}else
{
// user logged in already
}
Objective-C
- if (!ZohoDeskPortalSDK.isUserLoggedIn)
{
[ZohoDeskPortalSDK loginWithJWTToken:
<#(NSString * _Nonnull)#> onCompletion:^(BOOL isSuccess)
{
// isSuccess shows whether the login attempt was successful
// any errors will be logged
}];
}else
{
// user logged in already
} ;
ZohoDeskPortalSDK.isUserLoggedIn is a boolean value that tells whether the user is logged in. Logging out users from the SDK
To log a user out of the SDK, use the following method:
Swift
- ohoDeskPortalSDK.logout { (isSuccess: Bool ) in
// isSuccess shows whether the logout attempt was successful
// any errors will be logged
}
Objective-C
- [ZohoDeskPortalSDK logoutOnCompletion:^(BOOL isSuccess) {
// isSuccess shows whether the logout attempt was successful
// any errors will be logged
}];
After this method is triggered, the authenticated users are treated as anonymous.
Clearing Local Data
When an authenticated user signs out of the ASAP help widget, all data stored locally on the device is cleared automatically.
If local data needs to be cleared for anonymous users, use the following method:
Swift
ZohoDeskPortalSDK.clearAllLocalData()
Objective-C
[ZohoDeskPortalSDK clearAllLocalData];