根据本教程,目前我为我正在处理的网站实现了登录例程。
此外,我没有使用django自己的系统对用户进行身份验证,因为我正在对我公司的LDAP(django-auth-ldap(使用身份验证。
目前,我正在使用普通用户登录数据库,该数据库可以普遍访问所有数据,这也为登录网站的任何用户提供了完全访问权限。
为了避免这种情况,我想知道如何以刚刚登录网站的个人用户身份连接到数据库。
提前感谢,对不起英语不好
限制用户对功能的访问和使用数据库进行身份验证在 Django 中单独处理。你也许可以从数据库中读取用户的权限,并将它们映射到 Django 权限,但这并不重要(关于权限,请参阅 https://docs.djangoproject.com/en/2.1/topics/auth/default/#permissions-and-authorization(。
在功能受限于授权的 UI/UX 中,前端和后端需要注意需要检查权限,并且需要以某种方式将缺少的授权传达给用户。
例:
允许组 A 中的用户删除 X。他们看到"删除"按钮,并且可能还有一个可以删除 X 的 AJAX 调用。
不允许 B 组中的用户删除 X。他们看不到删除按钮,可以删除 X 的 AJAX 调用需要检查该权限和/或用户组成员身份。
如果您只使用数据库级别的授权层,那么 - 您如何知道是否应该显示"删除"按钮以及在 AJAX 调用中检查什么?
嗨! 如果我正确解决了您的问题,那么您创建的用户每次都是超级用户,对吗?
好吧,如果你使用的是 Djangoauth.User
模型,你可以User_object.is_super
False
然后限制用户的访问,尽管 if-else 在视图中!(User_object 是身份验证的对象。用户模型(
这有什么意义吗?
顺便说一句,一个旁注,我在制作第一个自定义用户模型时犯的一个错误:确保使用 Django 哈希和盐存储您的密码!