How account sharing prevention works

Sabil works by keeping track of all the devices that a user is utilizing to access your project. In order for Sabil to keep this info, you integrate a client library (JS, iOS, Android) into your project and call an attach API endpoint that links the device to the user. Once you call the attach endpoint, the device is linked to the user.

Sabil SDKs automatically detect and assign a unique ID to each device they are initialized on with 99.5% accuracy.

If the user exceeds the allowed number of devices, the client SDKs are notified and a blocking dialog is presented on top of your project. The dialog cannot be dismissed until the user selects devices to log out of. Once the user is back within the specified limit by your app, the dialog is dismissed and the user can continue using it.

Sabil allows you to set a default device limit on your dashboard settings. This default limit is used as fallback if no value was provided in the client side libraries.

You can also disable the blocking dialog entirely and simply monitor the devices attached to each user. Listen to the events emitted when a user exceeds the device limit and implement your own custom logic when that event is fired.

There are many customizations built into the client side libraries, including i18n, RTL support, dark and light theme support and much more.

The APIs can only be consumed using a client side library. There are a few reasons why:

  1. The client side libraries will continue to be updated and maintained by the Sabil team.
  2. The APIs will continue to be updated to maximize accuracy, and improve efficiency. You don't have to keep updating your code in order to stay compliant.
  3. There are proprietary concepts used in generating unique and accurate fingerprints for devices that are intellectual property and cannot be shared.