基于令牌的身份验证后限制权限

时间:2011-03-04 16:32:52

标签: django authentication permissions

我正在处理的网站(使用django)要求用户可以following a URL sent by email临时访问该功能的子集,而不必正确登录(即使用用户名和密码)。
当然,我知道此提案存在潜在的安全问题。因此,包含在URL中的令牌是随机生成的并存储在服务器上(而不是对用户名或类似的东西进行散列),并且到期。

此外,我想限制通过这样的令牌URL访问网站的用户的权限,这样他们只能访问一些(非常有限的)信息,而任何更实质性的操作都需要他们的凭据。 p>

我以相当粗略的方式实现了这一点:简单地说,不是通过令牌对用户进行身份验证,而是将其存储为会话变量,识别令牌的少数视图对其进行验证。
然而,拥有一个扩展的解决方案会很棒:例如,全局user.has_token检查会很棒。但是,我无法想象如何实现更优雅的解决方案。

所以我的问题是:你将如何实现这样一个系统?例如,是否可以在django中临时分配或限制permissions?可能需要自定义middleware吗?

非常感谢任何帮助。非常感谢!

编辑:在下面的讨论中,我想进一步指出一个问题:在每个页面视图中通过中间件分配组是否有效?在运行时向用户对象添加属性是否可行(类似于上面的user.has_token示例)?

1 个答案:

答案 0 :(得分:0)

使用django组,您可以限制访问

以下链接为您提供了示例:

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