Если вы не можете заставить клиента поддерживать файлы cookie, возможно, вы можете поместить некоторые данные в LocalStorage, а затем передать их на сервер для подключения к сеансу и структурировать их как одностраничное приложение.
Это будет выглядеть примерно так:
server | client
send initial payload, with token --> store token in LocalStorage
initial payload contains some script
<-- XHR request for /data?sessid=XXXXX
look up session, do stuff --> handle result, update DOM, do more XHR
Поддерживаются ли веб-сокеты? Вы можете использовать Socket.io для транспортировки, что будет намного меньше задержек.