Безопасное веб-приложение с Django и React
Я экспериментирую с этими двумя технологиями, чтобы сделать безопасное веб-приложение [В настоящее время изучаю React (60%) и Django (<50%). Это должно быть похоже на медицинскую базу данных, чтобы врачи и медсестры вводили информацию о своих пациентах. Естественно, им нужно войти в систему. Я хотел реализовать пользовательский интерфейс на основе React (а не использовать классический метод создания представлений из django), поэтому я нашел много руководств, подобных этому:
https://www.digitalocean.com/community/tutorials/build-a-to-do-application-using-django-and-react
По сути, это превращает Django в restAPI, а затем фронтенд React использует axios для получения данных из конечной точки. Звучит неплохо (по сравнению с родным методом рендеринга данных на веб-странице из Django), но проблема в том, что я понятия не имею, как сделать это безопасным, вы знаете, Django предоставляет систему аутентификации, которая довольно хороша и безопасна, я должен сказать, но в проекте с такой структурой, аутентификация должна быть сделана в React, поэтому возникает много вопросов:
- Для начала, хорошая ли идея делать проект такой структуры? (Если нет, то что может быть хорошим вариантом)
- Если "да", то как я могу защитить API, чтобы только зарегистрированные пользователи могли взаимодействовать с ним? (Какие механизмы для обеспечения защиты)
Да, это абсолютно правильная идея - разделить клиентское приложение и серверное приложение бэкенда.
- Вы можете получить доступ к бэкенду через rest api практически с любым фронтенд-фреймворком/приложением/скриптом.
- Покупатели могут расширить свои собственные приложения с помощью возможностями вашего бэкенд-сервиса.
- Вы можете создать несколько различных фронтендов, которые используют один и тот же бэкенд или различные части одного и того же бэкенда через rest api (мультибрендинг, перепродажа). Или вы можете просто менять фреймворк фронтенда каждый каждый второй год на новый.
- Также проще создавать различные автоматизации, используя rest api.
И список продолжается.
Для django rest api auth я бы рекомендовал Token Authentication, который уже включен в Django REST Framework, а для React используйте this tutorial для реализации входа и работы с токенами.
Не забудьте использовать TLS на ваших серверах и создать документацию по API. (Пример)