Ограничение разрешений после проверки подлинности на основе токена - PullRequest
0 голосов
/ 04 марта 2011

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

Кроме того, я хотел бы ограничить разрешения пользователей, осуществляющих доступ к сайту через такой токен URL, чтобы они могли получить доступ только к некоторой (очень ограниченной) информации, в то время как их учетные данные требуются для любых более существенных действий..

Я реализовал это довольно грубо: вкратце, вместо аутентификации пользователя через токен, он сохраняется как переменная сеанса, и несколько представлений, распознающих токен, проверяют его.Однако было бы замечательно иметь расширенное решение: например, глобальная проверка user.has_token была бы блестящей.Однако я не могу себе представить, как можно найти более элегантное решение.

Итак, мой вопрос: как бы вы внедрили такую ​​систему?Можно ли, например, временно выделить или ограничить разрешения в django?Может быть, здесь понадобится пользовательское связующее ПО ?

Любая помощь будет высоко ценится.Большое спасибо!

Редактировать : После обсуждения ниже я хотел бы дополнительно уточнить вопрос: будет ли эффективным назначать группы через промежуточное ПО на каждом просмотре страницы?Можно ли добавить свойства к объекту пользователя во время выполнения (аналогично примеру user.has_token выше)?

1 Ответ

0 голосов
/ 04 марта 2011

использования групп django, доступ к которым вы можете ограничить

ниже ссылка дает вам пример:

http://bradmontgomery.blogspot.com/2009/04/restricting-access-by-group-in-django.html

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