Skip to main content
For a widget on pages people sign in to. Anything the browser says about a visitor can be edited by the visitor, so on its own it proves nothing. Instead, your server signs the user’s id with a secret that only it and WireDesk hold, and the page passes the signature along. WireDesk recomputes it; a forged id does not match. A verified visitor’s conversation is tied to their email address when you send one, so it joins up with any threads they started by email. Without an email it is tied to the id you signed.

Set it up

1

Generate a signing secret

On the agent’s Install page, under Verified visitors, choose Generate a signing secret. Store it on your server as WIREDESK_SECRET. Never put it in the page.
2

Sign the user id on your server

The signature is HMAC-SHA256 of the user id, hex-encoded, under the secret. The id you sign must be exactly the id you send.
3

Pass it to the page

Set window.wiredeskSettings before the widget script loads:
In a single-page app where the visitor signs in after the page loads, call identify instead:
When they sign out, call wiredesk("reset") so the next person at that browser does not see their conversation. It drops the identity and clears the conversation stored in the browser, even if you redirect straight afterwards. See signing out.

Require it

Require verification refuses anonymous visitors outright. Only turn it on for a widget that appears exclusively on signed-in pages — on a public page it stops the chat working.

Rotating the secret

Rotating takes effect immediately. Deploy the new secret to your server first, then rotate, or signed-in visitors fail verification in between.

Where the signature travels

The widget hands the identity to the conversation frame in the URL fragment, never the query string, and the frame sends it in a request header. It never appears in an access log or a Referer. See the security model for how the server checks it and who owns a verified conversation.