Register Device

Cryptographically binds the device to the user for strong device identification

Description

This action performs a process that cryptographically binds the device to the user, ensuring that the device is uniquely associated with the user account. This process is handled implicitly by the client SDK, requiring no user interaction. The device may correspond to either a browser (for web apps) or a mobile phone (for mobile apps).

Cryptographic device binding is the most reliable form of device identification. Unlike other methods, such as device fingerprinting, this method cannot be "spoofed" by manipulating device attributes. Additionally, it does not rely on cookies, which can be inaccessible in certain scenarios, such as incognito mode or private browsing.

Once a device is registered, the output variable can be used by subsequent journeys to validate that the device is known and trusted by using the cryptographic keys generated during registration (see Is known device step). This ensures that the user is always using a recognized device, enhancing security and user experience.

The output of this step is a key_id, which uniquely identifies the device. This ID can be used for managing the device within Mosaic, such as updating its metadata (see Update device key) or unregistering the device if it’s compromised or no longer in use (see Delete device key).

Note

If the step is initiated for a device that's already registered, the device won't be re-registered.

Configuration

Field Description
User Auth State Indicates the status of user authentication within this journey. If set to the user is authenticated (default), the user context is automatically provided by the journey. If set to the user is not authenticated, the journey does not authenticate the user before invoking this step, so a user identifier must be configured (see External User ID).
External User ID User identifier, specified as an expression. Only configured if the journey doesn't authenticate the user before invoking this step.
Output variable Variable used to store the device key_id generated during the device registration process, which can be used in subsequent journey steps.