Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Supporting customers is even faster and more seamless with the auto-login integration. With this feature, once a customer logs into your website or portal, they will automatically be logged into the Chat Widget without having to enter separate credentials. This makes the customer's experience seamless and cuts out a potential blocker to them getting in touch with you, while allowing agents to respond quicker.

Panel
panelIconId0b4dfdca-ccd8-4047-a32e-42a4d1e5921b
panelIcon:chatjsm:
panelIconText:chatjsm:
bgColor#DEEBFF

The auto-login feature requires several changes on the front end and back end of the service that is going to be integrated.

Prerequisites

A pre-shared secret key is used to verify that the login request is valid and coming from your (client’s) backend. Each service desk project has its own secret key. To obtain the key, open your project, and go to Project Settings > Chat Settings > Widget Functionality > Registration & Log In.

Here, enable the Auto-Login feature and click (blue star) to generate a new secret key:

The pre-shared secret key should be stored in the backend.

Logging in

While performing user login on the website, the service should generate and issue a JWT access token for a chat and sign it with the pre-shared secret, as shown in the example below:

Code Block
const header = {
  alg: 'HS256',
  typ: 'JWT'
};
const payload = {
  email: "user@example.com",
  displayName: "User Account Name",
  iat: Date.now() / 1000, //unix timestamp in seconds
  exp: Date.now() / 1000 + 60 * 5 //token expiry date
};
const token = KJUR.jws.JWS.sign( //example using jsrsasign library
  "HS256",
  JSON.stringify(header),
  JSON.stringify(payload),
  sharedSecret
);

The service’s frontend should receive this token and call Chat’s SSO login API:

Code Block
languagehtml
try {
  await spartezSupportChat.sso.login(token);
} catch (exception){
  //handle exception
}

In order to make it work we need to make sure that Chat has been correctly initialized before the login operation. To do this, we can use initCallback from the spartezSupportChat object – see Install Chat Widget on Your Website.

During the login operation, an error may occur. In that case, an exception will be thrown. To get the error description, you can access exception.message property.

After that, the user will be logged in with credentials described in the token, and all tickets will have the reporter field assigned to the SSO user, keeping the original user in the request participants.

Limitation 1: If the login failed in the case that the customer has an account already in atlassian.com, please check if they have set the visibility of their contact email to "Anyone" so that the Chat app can see the email address and match the two.

Image Modified

(Here's the link to the profile setting: Profile and Visibility)

Limitation 2: Due to the Jira user creation process, while logging in with a non-existing JSM user email, it may take some time for the user to be fully created on the Atlassian side (less than 1 minute). During this process, trying to log in again with the newly created user may lead to an error, which is temporary.

Logging out

To log out, the service’s frontend should call await spartezSupportChat.sso.logout();.