Ключ должен храниться в cookie-файле httpOnly, специальном виде cookie-файла, который отправляется только в HTTP-запросах на сервер и никогда не доступен (как для чтения, так и для записи) из JavaScript, запущенного в браузере.
Кстати, так работает и проверка токенов JWT. Таким образом, вы можете использовать тот же механизм.
PS: Игнорируйте мой предыдущий комментарий, я просто пытался дать вам альтернативу, не думая об этом