【问题标题】:Django password and authentication for non standard users非标准用户的 Django 密码和身份验证
【发布时间】:2013-11-19 16:47:32
【问题描述】:

我被要求介绍一个不寻常的案例,我想知道其他人会怎么做。

我的 Django 应用程序中有用户。该模型是标准的用户模型,身份验证。等等。这些站点用户中的每一个都可以将他们自己的联系人添加到系统中。但是我的新要求是允许他们的联系人设置密码(如果他们愿意),以便他们可以登录到他们的状态页面(属于该用户)。

所以我的问题是你将如何做到这一点?我已经有了联系人表(属于一个用户),我正在考虑添加一个密码(可选)字段,但是我不确定如何处理身份验证,因为他们不是我的用户,而是我的用户(如果有意义的话)。

【问题讨论】:

    标签: python django django-models


    【解决方案1】:

    一种方法是为继承自AbstractBaseUser 的联系人创建另一个用户模型。然后creating custom auth backend 将在两个模型中查找登录用户。最后,您必须在每次操作之前区分标准用户和联系用户。 也就是说,如果您的应用程序中的联系人用户和标准用户存在显着差异。

    或者您可以在您的应用程序中创建custom user,其中包含is_contact 属性。这将用于两种类型的用户。您可以在设置中将其设置为AUTH_USER_MODEL,并在每个操作之前检查is_contact 属性以确定结果。如果联系人用户尝试访问他不应该访问的内容,您可以为他返回 403。

    或者,如果您在应用程序中使用权限,您可以将联系人用户的权限设置为仅查看将他添加为联系人的用户的状态,而不查看其他任何内容。

    【讨论】:

      猜你喜欢
      • 2019-03-15
      • 1970-01-01
      • 2017-07-31
      • 2011-09-27
      • 2020-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      相关资源
      最近更新 更多