Сайт, над которым я работаю (используя django), требует, чтобы пользователи могли временно получить доступ к подмножеству функций по по URL-адресу, отправленному по электронной почте , вместо того, чтобы входить в систему должным образом (т. Е. С именем пользователя и паролем)).Я, конечно, осведомлен о потенциальных проблемах безопасности с этим предложением.Поэтому токены, включенные в URL-адрес, генерируются случайным образом и хранятся на сервере (вместо хеширования имени пользователя или чего-то подобного) и имеют срок действия.
Кроме того, я хотел бы ограничить разрешения пользователей, осуществляющих доступ к сайту через такой токен URL, чтобы они могли получить доступ только к некоторой (очень ограниченной) информации, в то время как их учетные данные требуются для любых более существенных действий..
Я реализовал это довольно грубо: вкратце, вместо аутентификации пользователя через токен, он сохраняется как переменная сеанса, и несколько представлений, распознающих токен, проверяют его.Однако было бы замечательно иметь расширенное решение: например, глобальная проверка user.has_token
была бы блестящей.Однако я не могу себе представить, как можно найти более элегантное решение.
Итак, мой вопрос: как бы вы внедрили такую систему?Можно ли, например, временно выделить или ограничить разрешения в django?Может быть, здесь понадобится пользовательское связующее ПО ?
Любая помощь будет высоко ценится.Большое спасибо!
Редактировать : После обсуждения ниже я хотел бы дополнительно уточнить вопрос: будет ли эффективным назначать группы через промежуточное ПО на каждом просмотре страницы?Можно ли добавить свойства к объекту пользователя во время выполнения (аналогично примеру user.has_token
выше)?