Есть ли другие способы, кроме аутентификации, чтобы отличить пользователей? - PullRequest
0 голосов
/ 28 мая 2019

В моем приложении пользователь может выбрать видео Youtube, которое будет загружено в папку MEDIA_ROOT и затем доступно для загрузки пользователем.

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

Есть ли какой-либо способ - кроме реализации аутентификации пользователя и ассоциирования загруженных файлов с пользователем через внешний ключ,что я считаю излишним только для этой задачи - рассказывать пользователям отдельно, когда делается такой запрос на загрузку, чтобы запрос одного пользователя не приводил к удалению файла, загруженного другим пользователем (так как все файлы находятся вта же папка MEDIA_ROOT)?

Ответы [ 2 ]

1 голос
/ 28 мая 2019

Предполагая, что у вас есть какой-то веб-сервер, вы можете создавать пользовательские ссылки, которые перенаправляют через ваш веб-сервер и передают информацию об IP-адресе и т. Д., Чтобы вы могли отличить пользователя перед загрузкой видео. Это, безусловно, один из способов сделать это без аутентификации, и поскольку приложение / платформа, которая отслеживает пользовательские данные, является внутренним, вам не нужно беспокоиться о внешних ключах и т. Д.

0 голосов
/ 28 мая 2019

Вы можете использовать куки для уникальной идентификации пользователей. Веб-браузеры будут отправлять это значение cookie на ваш веб-сервер до тех пор, пока хранилище cookie веб-браузера не очищено. Убедитесь, что вы сгенерировали трудно угадываемое значение, которое веб-браузер должен хранить, и вы должны идентифицировать себя, чтобы никто не мог перехватить это значение и получить доступ к данным, предназначенным для других пользователей. Обычный способ - генерировать, скажем, строку из 32 символов из CSPRNG.

Вы можете задать этот вопрос, чтобы узнать, как установить файлы cookie в Python Django: Файлы cookie Django, как их установить?

Я бы лично использовал встроенные сеансы Cookie Django: https://docs.djangoproject.com/en/2.2/topics/http/sessions/#using-cookie-based-sessions

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...