您的位置:首页 > 编程语言 > Go语言

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

2017-04-27 00:26 591 查看

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_anonymous
is_active
False
则返回空集。

get_group_permissions(user_obj,obj = None)


返回
user_obj
从其所属组的权限中获得的权限字符串集。 如果
is_anonymous
is_active
False
则返回空集。

get_all_permissions(user_obj,obj = None)


返回
user_obj
具有的权限字符串集,包括用户权限和组权限。 如果
is_anonymous
is_active
False
则返回空集。

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
字段的自定义用户模型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐