2016-01-20 3 views
1

Я создаю приложение для нескольких арендаторов, используя Angular и Node.js, разумно ли иметь тот же API для пользователей Front End (Public) и Admin Area (Tenants)?Отдельный API-интерфейс пользователя/администратора?

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

Это хорошая идея? Это вызовет проблемы в будущем?

Я ищу, чтобы пойти на следующую структуру приложения:

  • Передняя часть: tenant-name.domain.com (Открыть в общественности) области

  • Админ: domain.com/ Администратор (с логином и токен аутентификации)

  • API: api.domain.com

Было бы хорошей идеей, чтобы аутентификация переднего интерфейса клиента с помощью API?

ответ

0

Я бы предположил, что для вызовов API-интерфейсов администратор требует, чтобы токен аутентификации передавался по всем вызовам API. Вы можете вводить токен в заголовки с помощью HTTP-перехватчиков в Angular. Пользователь, у которого еще нет токена авторизации, должен войти в систему, чтобы получить его. Введенный токен аутентификации должен быть всей необходимой вам защитой.

+0

Просто добавление: вы должны иметь '$ httpProvider.defaults.withCredentials = true;' в коде перехватчиков – k102

+0

Я получаю эту часть для области администратора, а как насчет анонимной аутентификации области пользователя, открытой для публики? Было бы лишним? Есть определенные вещи, которые должны быть безопасными (Пользовательские заказы), но я стараюсь избегать сеансов – btply

+0

Это вопрос предпочтения, и вы, вероятно, получите много разных мнений по этому поводу. В некоторых производственных приложениях с общедоступными функциями не используются никакие auth, cookies или отслеживания любого вида. –

0

Я предлагаю вам создать токен, когда анонимный пользователь запросит ваш API. Причина в том, что вы всегда можете определить, кто его просил.

Смежные вопросы