Django 是否为偶尔的询问提供帮助?

Django 是否为偶尔的询问提供帮助?,django,authentication,Django,Authentication,我已经为学校管理开发了一个应用程序。教师和其他角色有一个帐户(django用户),用于控制学生出勤、行为问题等 学生本身就是一个榜样。教师是一个用户代理 现在我准备扩展这个应用程序,让家长可以访问孩子的信息(这很残忍,但为了学生;) 我正在评估以下备选方案: 制作一个简单的php应用程序,仅用于父级访问(使用专用数据库用户 和视图)。它看起来很安全,但我不喜欢php 在学生模型中添加密码字段并构建我的所有者身份验证系统。我 不喜欢“django认证的学生” 将学生身份验证与实际身份验证模式集成

我已经为学校管理开发了一个应用程序。教师和其他角色有一个帐户(django用户),用于控制学生出勤、行为问题等

学生本身就是一个榜样。教师是一个用户代理

现在我准备扩展这个应用程序,让家长可以访问孩子的信息(这很残忍,但为了学生;)

我正在评估以下备选方案:

  • 制作一个简单的php应用程序,仅用于父级访问(使用专用数据库用户 和视图)。它看起来很安全,但我不喜欢php
  • 在学生模型中添加密码字段并构建我的所有者身份验证系统。我 不喜欢“django认证的学生”
  • 将学生身份验证与实际身份验证模式集成。我不喜欢这个 出于安全原因,这意味着要检查所有视图的安全性,而这是教师和学生的混合
  • 仅为学生(和家长)创建一个新的django应用程序,该应用程序包含两个数据库,“学校”数据库和一个新的具有auth for students的数据库
在查看儿童信息之前,对您来说,验证父母身份的最佳方法是什么

任何建议都欢迎。非常感谢

啊!!我认为父母忘记密码很容易


学校有超过800名学生,应用商店每年有超过100万的状态检查,许多家长访谈,

Django contrib.auth模型除了用户帐户之外还包含组和权限。事实上,普通django用户和django管理员用户共享同一个模型,但权限不同

考虑到默认的身份验证模型(从安全的角度来看)已经被共享,一旦出现违规行为,后果会更大。我看不出有什么理由不让学生使用相同的模型进行身份验证,只将他们分配到单独的组中并管理他们的权限。您的安全性不会比现在更差或更好

就开发方面而言,您所要做的只是在视图处理程序上使用decorator,这些处理程序是教师/家长,仅用于限制学生对它们的访问。 见:

如果出于任何原因,这是不可接受的(尽管我无法从你所说的推测出原因),你将不得不:

  • 编写自己的中间件,将自己注入contrib.auth(重新发明轮子)
  • 使用外部系统来验证权限(与Django的方法完全正交,实际上会使您的系统比使用integrated contrib.auth复杂得多)
  • 做自己的身份验证系统的另一个缺点是,您现在必须担心Django为您解决的所有类型的安全问题(如CSRF保护、SQL注入/转义和许多其他问题)。更不用说,与使用contrib.auth提供的经过测试和验证的代码/模型相比,可能会出现的bug