基于 Django1.10 文档的深入学习(16)——Authentication backends 之 class ModelBackend

Authentication backends 验证后端

本节详细介绍Django附带的身份验证后端。 有关如何使用它们以及如何编写自己的身份验证后端的信息,请参阅用户身份验证指南的其他身份验证源部分。

可用的身份验证后端

django.contrib.auth.backends中有以下后端:

class ModelBackend:
这是 Django 使用的默认身份验证后端。 它使用由用户标识符和密码组成的凭据进行身份验证。 对于 Django 的默认用户模型,用户标识符是用户名,对于自定义用户模型,它是由USERNAME_FIELD指定的字段(请参阅自定义用户和身份验证)。

它还处理为用户User和权限密码定义PermissionsMixin的默认权限模型。

has_perm()get_all_permissions()get_user_permissions()get_group_permissions()允许将对象作为对象特定权限的参数传递,但是如果obj不是,则后端不会实现它们而不是返回一组空的权限 None


authenticate(username = None,password = None,** kwargs)

尝试通过调用User.check_password验证密码用户名。 如果没有提供用户名,它将尝试使用密钥CustomUser.USERNAME_FIELD从kwargs获取用户名。 返回经过身份验证的用户或无。


get_user_permissions(user_obj,obj =无)
返回user_obj拥有自己的用户权限的一组权限字符串。 如果is_anonymousis_activeFalse则返回空集。


get_group_permissions(user_obj,obj = None)
返回user_obj从其所属组的权限中获得的权限字符串集。 如果is_anonymousis_activeFalse则返回空集。


get_all_permissions(user_obj,obj = None)
返回user_obj具有的权限字符串集,包括用户权限和组权限。 如果is_anonymousis_activeFalse则返回空集。


has_perm(user_obj,perm,obj = None)
使用get_all_permissions()来检查user_obj是否具有权限字符串perm。 如果用户不是is_active,返回False


has_module_perms(self,user_obj,app_label)
返回user_obj是否具有应用app_label的任何权限。


user_can_authenticate()
返回是否允许用户进行身份验证。 为了匹配禁止非活动用户登录的AuthenticationForm的行为,此方法对于is_active = False的用户返回False。 允许没有is_active字段的自定义用户模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值