基于 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字段的自定义用户模型。
相关文章推荐
- 基于 Django1.10 文档的深入学习(8)—— Model field reference 之 choices
- 基于 Django1.10 文档的深入学习(30)——Class-based views
- 基于 Django1.10 文档的深入学习(20)—— Using the Django authentication system 之 login()
- 基于 Django1.10 文档的深入学习(34)—— Customizing authentication in Django 之 基础
- 基于 Django1.10 文档的深入学习(18)—— Using the Django authentication system 之 LoginRequiredMixin
- 基于 Django1.10 文档的深入学习(33)—— Using the Django authentication system 之login_required和LogiRequiredMixin
- 基于 Django1.10 文档的深入学习(32)—— Introduction to class-based views
- 基于 Django1.10 文档的深入学习(4)—— models.py 之 class Meta
- 基于 Django1.10 文档的深入学习(10)—— django.contrib.auth 之 User model
- 基于 Django1.10 文档的深入学习(23)—— QuerySet API reference 之 icontains
- 基于 Django1.10 文档的深入学习(14)—— Request and response objects 之 HttpResponse objects
- 基于 Django1.10 文档的深入学习(5)—— Making queries 之 FOO_set
- 基于 Django1.10 文档的深入学习(9)—— Extra instance methods 之 get_FOO_display()
- 基于 Django1.10 文档的深入学习(3)—— models.py 之 FileField
- 基于 Django1.10 文档的深入学习(24)—— Form and field validation 之 cleaned_data
- 基于 Django1.10 文档的深入学习(12)—— django.shortcuts 之 redirect()
- 基于 Django1.10 文档的深入学习(15)——django.contrib.auth.hashers
- 基于 Django1.10 文档的深入学习(28)—— Managing static files(e.g. images, JavaScript, CSS)
- 基于 Django1.10 文档的深入学习(21)——The Forms API 之 Form.errors
- 基于 Django1.10 文档的深入学习(27)—— django.conf.urls utility functions 之 url(),include(),static()