В бд добавляешь столбик - status или online, принимающий булевое значение. По дефолту ставишь 0(false) в бэке создаёшь обработку post запроса. Например /checkonline. Пост запрос должен принимать id нужной строки в бд и статус(true или false) на сайте и соответственно изменять ее. На фиш добавляешь js код с проверкой на закрытие и открытие нашей страницы. Гуглится все очень хорошо. Когда пользователь закрывает, отправляем пост запрос, с помощью axios к нашему бэку, где указываем id и статус false. С открытием все также,но наоборот