我开发了一个学校管理应用程序。教师和其他角色拥有一个帐户(django用户)来控制学生的出勤率,行为问题等。
学生本身就是一个榜样。老师是用户代理。
此时我已经准备好扩展应用程序,允许父母访问儿童信息(这是残忍的,但是为了学生;)
我正在评估这些替代方案:
在看到儿童信息之前,您有什么最好的方法来验证父母的身份?
任何建议都很好。非常感谢。
啊!我认为父母忘记密码很容易。
学校有超过800名学生,应用商店超过1百万的存在cheks年,很多家长采访,...
答案 0 :(得分:0)
除了用户帐户之外,Django contrib.auth模型还包含组和权限。事实上,常规django用户和django管理员用户只能使用不同的权限共享相同的模型。
考虑到,默认的身份验证模型(从安全的角度来看)已经分享了更大的后果,如果发生违规,我没有看到为什么你不应该让学生使用相同的模型进行身份验证而只是分配他们进入一个单独的组并管理他们的权限。你的安全性不会比现有的更糟或更好。
就开发方面而言,您只需在视图处理程序上使用装饰器,这些装饰器仅限于教师/家长,以限制学生访问它们。 请参阅:Permissions decorator
如果由于某种原因这是不可察觉的(虽然我不能推断你所说的理由),你将不得不这样做:
执行自己的身份验证系统的另一个缺点是,您现在必须担心Django为您解决的所有类型的安全问题(例如CSRF保护,SQL注入/转义以及许多其他问题)。更不用说可以使用contrib.auth提供的经过测试和验证的代码/模型的错误。