Как создать персональную ссылку с ограниченным сроком действия с помощью DRF и React

У меня есть внешнее приложение, реализованное с использованием React Framework. Мне нужно дать доступ к этому приложению по временной (несколько часов) персональной ссылке. Никаких дополнительных функций аутентификации не требуется. В день появляется около 1-2 новых пользователей.
Итак, реализация, к которой я пришел, выглядит так:

  1. Я реализую backend API, который отвечает за генерацию, хранение и проверку личных ключей с помощью Django Rest Framework.
  2. Ключи используются как часть URL для доступа к реагирующему приложению.
  3. Генерация ключей осуществляется встроенной страницей администрирования Django.
  4. Пользователь получает доступ к странице, передавая сгенерированный личный ключ в URL-адресе
  5. React-приложение вызывает ключ передачи бэкэнд-API, чтобы проверить, может ли пользователь получить доступ к приложению.

Интересно, это решение хорошее? Можно ли реализовать эту функциональность без бэкенда (например, с помощью nginx или любых других инструментов devops)? Есть ли какой-нибудь пакет для django rest framework, в котором уже есть нужная мне реализация?

Привет, насколько я могу судить, да, ваша реализация хороша. Генерация и проверка ключей также могут выполняться на уровне разработки с использованием таких инструментов, как nginx, но этот подход более гибкий и простой в управлении.

Blessing Ladejobi 10.01.2023 02:25

⚠️️ Вопросы о рекомендациях по программному обеспечению здесь не по теме по причинам, описанным в № 3 из /help/on-topic.

user 12.01.2023 01:19
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
110
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Предложенное вами решение для реализации ограниченной по времени личной ссылки для доступа к вашему приложению React кажется разумным. Использование внутреннего API для создания, хранения и проверки личных ключей, а также использование Django Rest Framework для создания API — хороший выбор, поскольку он позволяет легко управлять ключами и проверять их достоверность.

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

Что касается пакета для Django Rest Framework, нет ни одного пакета, в котором уже есть необходимая вам реализация, но вы можете использовать некоторые пакеты, такие как Django-temporary-tokens, которые позволяют создавать, проверять и истекать токены. Или вы можете использовать другие библиотеки, такие как django-cors-headers, djangorestframework-jwt и djangorestframework-simplejwt, для создания и проверки токена JWT.

Таким образом, предложенное вами решение является хорошим, но вам также следует рассмотреть вариант использования Nginx или других инструментов devops. Вам также следует рассмотреть возможность использования существующих библиотек или пакетов, которые помогут вам справиться с созданием и проверкой токена.

Другие вопросы по теме