Skip to main content

Messenger Portal Auto Authentication

For some of our larger partners who have a custom built portal or third party vendors looking to provide the web version of Messenger in their platform, we now offer a way to automatically authenticate Messenger with your portal. Our web based Messenger is a javascript plugin that leverages passwordless authentication by default - this means that the end customer has to type their email and receive a 6 digit pin to authenticate to raise a service request. That verification email carries your workspace name and logo, and you can customize the support address shown in it. See OTP sign-in emails. If you have a portal that already requires authentication, you do not want the end customer to re-authenticate. In order to facilitate this, we are now providing a way to encrypt the email address on your server side and pass it into the javascript plugin. We also have the key on our side, so we can decrypt it and validate that the end user is who they say they are. This prevents a bad actor from hijacking the chat client and pretending to be someone else.
Generate your secret key yourself in Messenger settings in the Thread Admin Panel. Scroll to the Portal Authentication section at the bottom and click Generate Key. The key is shown only once, so copy it and store it securely. You can revoke it from the same section at any time.
Please store this secret securely on the server side and not in the javascript side. If you do this on the client side, the secret becomes invalid, as anyone can now use it.
Once you generate the secret, these are the steps you will need to take:
1

Store the secret on your server

Store the secret securely on your server side
2

Generate the HMAC hash

Securely generated hash with the secret from Messenger settings. Hash must be generated from the following format hash_hmac('sha256', <email>, <secret>)
3

Insert the JavaScript plugin with the hash

Insert the javascript plugin into your web client, and in the connectionKey, insert the hash that is generated. Ensure that you are also passing the connectionEmail to match it, and that your connectionType is set to messenger_auth.

Managing Messenger instance

Programmatically set up:
Destroy instance: