Я внедряю авторизацию HMAC для одностраничного приложения Vue.Основной рабочий процесс выглядит следующим образом:
- Пользователь отправляет запрос с именем пользователя и паролем
- Сервер проверяет учетные данные, а при успешном входе в систему возвращает открытый ключ и закрытый ключ
- Для любых дальнейших запросов клиент генерирует HMAC, используя URI запроса, данные и закрытый ключ.Сервер генерирует хэш, используя те же данные, чтобы проверить, совпадают ли они.
Мой вопрос: какой самый безопасный способ хранения закрытого ключа для клиента?localStorage
кажется небезопасным, и безопасные файлы cookie только для HTTPS будут работать, но JS должен иметь доступ к нему для генерации HMAC для каждого запроса?Какой будет лучший обходной путь в этой ситуации?