Безопасное подключение к Cloudant с использованием AngularJS (и, возможно, PHP)

Я создал очень простое приложение AngularJS Shop, которое создает заказы на продукты.
На данный момент приложение просто отправляет заказы по электронной почте покупателю и продавцу с помощью PHP, но я подумал, что было бы неплохо немного узнать, как использовать базы данных, и сохранять / извлекать эти заказы (которые являются массивами) в Cloudant.

Но потом я понял, что для подключения к сервису Cloudant вызов выглядит так:

https://{username}:{password}@username.cloudant.com/DB

Я предполагаю, что это совсем не безопасно, так как вызов и учетные данные будут видны всем.

Кроме того, в приложении вообще нет необходимости для кого-либо иметь учетную запись или логин, что частично поможет с безопасностью.

Поскольку у меня 0 опыта работы с Node или любой другой серверной системой, я задаюсь вопросом: можно ли совершать безопасные вызовы в службу Cloudant, используя только AngularJS (или PHP для хранения конфиденциальных значений)?

Я прочитал немного о один дБ на пользователя, но, похоже, это не поможет в моем случае, когда мне нужна одна БД для хранения всех моих заказов.

Любые советы будут высоко оценены.

0

Решение

Если вам нужно предоставить свои учетные данные в вызовах API, лучше не делать их из внешнего интерфейса. Если вы используете Angular и PHP, самый простой способ скрыть свою информацию об аутентификации от общественности:

  • Создайте файл PHP и перенесите код API на серверную часть.
  • Это будет немного работы, но, в конце концов, служба входа в систему должна произойти на сервере. Этот файл должен получать запросы от клиента и передавать их удаленной службе, а затем возвращать свой ответ клиенту.
  • Используйте AJAX на внешнем интерфейсе для выполнения вызовов вышеуказанного PHP-файла и продолжайте отображать его ответ пользователю, как если бы вы обрабатывали ответ API.

Таким образом, ваши учетные данные API не будут доступны никому, кто проверяет исходный HTML-код вашей страницы, и вы можете сохранить основную логику интерфейса так, как вы ее уже настроили.

2

Другие решения

Как сказал @ppajer, я настоятельно не рекомендую использовать AngularJS, чтобы делать то, что вы хотите. Оставьте его на бэк-энде и используйте ajax для звонков. Посмотрите на этот репо, он может помочь вам: https://github.com/osipov/bluemix-cloudant-php-sample

0

По вопросам рекламы [email protected]