• Django之认证系统


    auth模块

    首先导入auth模块

    form django.contrib import auth

    django.contrib.auth中我们常用到的三个方法

    使用auth_user表作为用户表

    1.authenticate()

    提供了用户认证,用来验证用户名以及密码是否正确,一般需要username password两个关键字参数。

    如果认证信息有效就会返回一个User对象,authenticate()会在User对象上设置一个属性标识那种后端

    认证了该用户,且该信息在后面的登录过程中是需要的,当我们试图登陆一个从数据库中直接取出来不

    经过authenticate()的User对象会报错的

    2.login(Httpresponse,user)

    该函数接受了一个HttpResponse对象,以及一个认证了的User对象,login函数用session框架给

    某个已认证的用户附加上session id 等信息

    3.logout(request)注销用户

    该函数接受一个HttpRequest对象,无返回值。当调用该函数时,当前请求的session信息会全部清除。该用户即使没有登录,使用该函数也不会报错。

    4.user对象的is_authenticated()

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

        如果没有登陆直接访问的话会跳转到登陆页面

        再次跳转登陆完成后会跳转到想要去的页面

    User对象 

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

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

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

    is_authenticated()

    如果是真正的 User 对象,返回值恒为 True 。 用于检查用户是否已经通过了认证。
    通过认证并不意味着用户拥有任何权限,甚至也不检查该用户是否处于激活状态,这只是表明用户成功的通过了认证。 这个方法很重要, 在后台用request.user.is_authenticated()判断用户是否已经登录,如果true则可以向前台展示request.user.name

    创建用户

    使用 create_user 辅助函数创建用户:

    form django.contrib.auth.models import User

    user=User.objects.create_user(username='',password='',email='')

    check_password(password)

    用户修改密码时,让他输入原来的密码,如果给定的密码通过了密码检查,返回True

    修改密码

    使用set_password()来修改密码

    user = User.objects.get(username='')

    user.set_password(password='')
    user.save
     

    具体举例改天更新

  • 相关阅读:
    将Nginx添加到windows服务中
    springboot使用redis管理session
    GIT常用命令
    阻止360、谷歌浏览器表单自动填充
    谈谈对Spring IOC的理解
    同一个Nginx服务器同一端口配置多个代理服务
    LeetCode 653. Two Sum IV
    109. Convert Sorted List to Binary Search Tree(根据有序链表构造平衡的二叉查找树)
    108. Convert Sorted Array to Binary Search Tree(从有序数组中构造平衡的BST)
    LeetCode 236. Lowest Common Ancestor of a Binary Tree(二叉树求两点LCA)
  • 原文地址:https://www.cnblogs.com/1996-11-01-614lb/p/8401561.html
Copyright © 2020-2023  润新知