Django-auth:使用用户UUID登录并限制权限



我正在尝试创建一种快速响应表格,其中用户不需要登录,而是用他的uuid(在URL中)识别。此外,我需要限制他对本届会议的权限,以便他只能做几件事。

  1. 用户使用UUID和事件的ID(他可以在这里响应)
  2. 获得URL
  3. 用户单击链接和响应页面打开
  4. 通过UUID确定用户
  5. 使用事件的ID生成事件响应表
  6. 用户可以选择选项并提交表格通常,还有其他多个其他选项(例如在Menue中)可用,但是只有用户使用其用户名和密码标识时,才能访问这些选项。

当然我可以写一个特殊的视图,但是有一种更优雅的方式可以重用现有的响应视图吗?

首先,您需要使用UUID触发登录。

您如何接近这将取决于您是否介意使用特定的登录URL/视图,还是希望人们直接到达预期的URL/视图(仅使用UUID参数)。如果使用特定视图,则会检查UUID(大概将其标记为使用/已过期),然后登录用户。另外,要通过任何URL/View登录UUID并使用户登录,您将希望A使用中间件设置中位于AuthenticationMiddleware之前放置的自定义中间件。在每种情况下,一旦登录用户,您都需要在会话中存储某种标志,以表明他们通过临时登录UUID进行了验证。

现在,您已经通过UUID进行了认证并登录用户了,现在该为他们提供视图了。在视图中的这一点上,您将在用户会话中检查标志的存在以确定其权限。

您可以走得更远,创建另一个中间件类,以封装会话查找,并将属性(例如is_auth_temporary"添加到request.user对象。用户对象,该对象是IS_Anonymous和is_authententicatientatiented属性。

最新更新