zoukankan      html  css  js  c++  java
  • Django框架中auth模块的详解

    auth模块

    auth模块是对登录认证方法的一种封装,本身就是一个对象,可以获取用户的详细信息,有了auth模块可以验证登录信息是否存在数据库中,还可以检验用户是否已经登录,校验密码等

    auth方法

    • 导入
    from django.contrib import auth
    

    1、authenticate()

    提供了用户认证,验证用户名以及密码是否正确,如果信息有效会返回一个user对象

    user =authenticate(username='',password='')
    

    2、login(HttpRequest,user)

    接受一个HttpRequest对象,以及一个认证了User对象,此函数使用django的session框架给某个已认证的用户附加上session,id等信息

    from django.contrib.auth import authenticate,login
    def my_view(request):
        username=request.POST['username']
        password=request.POST['password']
        user=authenticate(username=username,password=password)
        if user is not None:
            login(request,user)
        else:
            pass
    

    3、logout(request)注销用户

    接受一个HttpRequest对象,无返回值,调用该函数时,当前请求的session信息会全部清除

    from django.contrib.auth import logout
    def logout_view(request):
        logout(request)
    

    4、user对象的is_authenticated()

    用户登录后才能访问某些页面

    from django.contrib.auth.decorators import login_required
    @login_required
    def my_view(request):
        pass
    
    def my_view(request):
        if not user.is_authenticated():
            pass
    

    user对象

    属性:username,password,其中password用哈希算法保存到数据库

    is_staff:用户是否拥有网站的管理权限

    is_active:是否允许用户登录,设置为‘False’,可以不用删除用户来禁止用户登录

    1、create_user创建用户

    from django.contrib.auth.models import User
    user=User.object.create_user(username='',password='',email='')
    

    2、check_password(password)校验旧密码

    user=User.objects.get(username='')
    if user.check_password(password):
        pass
    

    3、set_password()修改密码

    user=User.objects.get(username='')
    user.set_password(password='')
    user.save
    

    继承auth方法

    1、导入一个AbstractUser类,并且写一个自定义类,继承AbstractUser

    from django.contrib.auth.models import AbstractUser
    class UserInfo(AbstractUser):
        pass
    

    2、在setting.py文件里配置

    AUTH_USER_MODEL=''
    
  • 相关阅读:
    6 全局锁和表锁
    oracle ogg--ogg搭建过程中遇到的错误及处理
    5 深入浅出索引(下)
    4 深入浅出索引(上)
    oracle ogg 单实例双向-新增表,修改表结构(oracle-oracle
    oracle ogg 单实例双向复制搭建(oracle-oracle)--Oracle GoldenGate
    Iview 中 获取 Menu 导航菜单 选中的值
    idea中git分支的使用
    vue使用axios进行ajax请求
    web前端_Vue框架_设置浏览器上方的标题和图标
  • 原文地址:https://www.cnblogs.com/lzss/p/12168221.html
Copyright © 2011-2022 走看看