Во многом я согласен с ответом
Сергей не стоит пытаться сделать непробиваемый инструмент.
Для достижения минимально рабочего результата вам хватит cookie.
Нужно что-то понадежнее гуглите в сторону super cookie
Если у вас одностраничное приложение и описанная вами задача должна быть реализована в рамках одной сессии - захватите пользователя с помощью websocket и идентифицируйте через него - но любая перезагрузка страницы сотрет весь прогресс.
Это с одной стороны полностью исключает передачу ссылки другому пользователю, но с другой усложняет архитектуру сервера, так как, повторюсь, вам придется работать с одностраничным приложением и разруливать права доступа к информации на нем. Плюс мало кого устроит потеря прогресса после перезагрузки страницы.