У меня есть два отдельных веб-приложений:REST API: клиент агента пользователя на основе (приложение) авторизации
- базы данных API
- и основные веб-клиент (колба) с некоторыми JS-кода (Knockout. JS) для интерактивных функций, таких как фильтрация продуктов «на лету», корзина и т.д.
для реализации интерактивных ответов через API я использую запросы JavaScript, работающих в браузере пользователя. Я хочу контролировать доступ к API и предоставлять его только авторизованным веб-приложениям, например, собственный JS-код клиента.
Я читал о HMAC и Oauth. Ключевой момент: сервер и клиент используют один и тот же секрет, который используется для генерации HMAC, например.
Но как я могу создать HMAC внутри браузера пользователя, используя секрет и не раскрывая секрет другим? Насколько я понимаю, если у моего JS-кода есть доступ к тайне, чем кто-либо в Интернете имеет такой доступ, верно?
вы можете использовать https для защиты данных – Jeremy
Хорошо, используя HTTPS Я защищаю связь между клиентом и сервером. Но клиент все равно должен отправить некоторые учетные данные. И мой клиент - это JS-код, доступный для всех. Итак, что доступно моему клиентскому приложению, доступно всем, не так ли? – hsrv
yes right, но вы можете использовать закрытый ключ для каждого клиента, использовать контрольную сумму для целостности данных и т. Д. – Jeremy