zoukankan      html  css  js  c++  java
  • auth组件

    auth是什么?

    ​ django内置的用户认证系统,可以快速的实现,登录,注销,修改密码....

    auth的使用

    1)想在原来有的表的基础上添加一些字段(定义一个表模型,继承(AbstractUser))

    models.py文件中添加 (添加了字段phone和sex)

    from django.db import models
    from django.contrib.auth.models import AbstractUser
    # Create your models here.
    
    class UserInfo(AbstractUser):
        phone = models.CharField(max_length=11)
        sex = models.CharField(max_length=4)
        
    
    ​ 2)创建用户
    user = request.POST.get('user')
    pwd = request.POST.get('pwd')
    sex = request.POST.get('sex')
    phone = request.POST.get('phone')
    userinfo=models.UserInfo.objects.create_user(username=user,password=pwd,sex=sex,phone=phone)
    
    ​ 3)用户验证
    name = request.POST.get('user')
    pwd = request.POST.get('pwd')
    user = auth.authenticate(request,username=name,password=pwd)
    
    4)登录(其实就是在session中写了一条数据)
    auth.login(request,user)
    
    5)注销(内部:调用了request.session.flush(),删除了登录状态)
    auth.logout(request)
    
    6)登录认证装饰器(若没有登录跳转到'/login/')

    ​ 1 没在配置文件中配置

    from django.contrib.auth.decorators import login_required
    @login_required(login_url='/login/')
    
    

    ​ 2 在配置文件中配置

    setting.py

    LOGIN_URL='/login/'
    

    views.py

    from django.contrib.auth.decorators import login_required
    @login_required()
    
    7)校验密码(先拿到用户(可以是登录用户,可以现查))
    request.user.check_password(pwd)
    
    8)修改密码(注意:一定要调用save(),否则是不保存的)
    user.set_password(pwd)
    user.save()
    
    9)is_authenticated()

    ​ 如果通过验证,是true反之false

    10)
    is_active:禁止登录网站(用户还存在,封号)
    is_staff:是否对网站有管理权限(能不能登录admin)
    
  • 相关阅读:
    mysql分区
    pl/sql查看tnsnames.ora文件路径
    mysql之事务控制和锁定语句
    mysql返回查询行数fund_rows()
    mysql之视图
    Mysql之btree索引和hash索引的区别
    Java中反射 API 的使用
    zookeeper 客户端 Apache curator 分布式锁实操
    springBoot 整合 ZooKeeper Java客户端之 Apache Curator 实战
    初识 ZooKeeper
  • 原文地址:https://www.cnblogs.com/jianhaozhou/p/10022848.html
Copyright © 2011-2022 走看看