Django之Auth认证

命令行创建超级用户

python manage.py createsuperuser

登陆验证跳转

# 局部配置
# @login_required(login_url=‘/auth_login/‘)
# 全局配置
# auth自动跳转
LOGIN_URL = ‘/auth_login/‘  # settings.py配置

可以扩展默认的用户model

from django.contrib.auth.models import AbstractUser

class Userinfo(AbstractUser):
    phone = models.CharField(max_length=32)
    avatar = models.CharField(max_length=32)
# 用自己创建的表,所有auth模块的方法使用方式不变

在settings文件中设置自定制的用户模型

AUTH_USER_MODEL = ‘app01.Userinfo‘

操作

def auth_login(request):
    if request.method == ‘POST‘:
        username = request.POST.get(‘username‘)
        password = request.POST.get(‘password‘)
        # models.User.objects.filter(username=username,password=password).first()
        user_obj = auth.authenticate(request,username=username,password=password)
        if user_obj:
            # 记录用户状态
            # request.session[‘name‘] = ‘jason‘
            auth.login(request,user_obj)  # 一旦记录了,可以在任意的地方通过request.user获取到当前登录对象
            return HttpResponse(‘ok‘)

    return render(request,‘auth_login.html‘)

def auth_index(request):
    print(request.user.is_authenticated())  # 判断当前用户是否已经登录
    print(request.user,type(request.user))  # 获取当前登录用户对象
    return HttpResponse(‘ok‘)

def auth_logout(request):
    auth.logout(request)  # request.session.flush()
    return HttpResponse(‘ok‘)

def auth_register(request):
    if request.method == ‘POST‘:
        username = request.POST.get(‘username‘)
        password = request.POST.get(‘password‘)
        user_obj = auth.authenticate(request,username=username)
        if user_obj:
            return HttpResponse(‘当前用户已存在‘)
        # models.User.objects.create(username=username,password=password)
        # User.objects.create(username=username,password=password)  # 不能再用create创建
        # User.objects.create_user(username=username,password=password)  # 创建普通用户
        User.objects.create_superuser(username=username,password=password,email=‘[email protected]‘)  # 创建超级用户
    return render(request,‘auth_register.html‘)

def auth_password(request):
    print(request.user.password)
    is_res = request.user.check_password(‘jason123‘)  # 校验密码是否一致
    if is_res:
        request.user.set_password(‘666‘)  # 设置新密码
        request.user.save()  # 修改密码必须save保存  不然无效
    return HttpResponse(‘ok‘)

auth装饰器

from django.contrib.auth.decorators import login_required
# @login_required(login_url=‘/auth_login/‘)  # 局部配置
@login_required
def auth_home(request):
    return HttpResponse(‘home必须登录才能访问‘)

@login_required
def auth_xxx(request):
    return HttpResponse(‘xxx必须登录才能访问‘)

原文地址:https://www.cnblogs.com/xufengfan/p/11047099.html

时间: 2024-08-01 03:30:52

Django之Auth认证的相关文章

django的auth认证,is_authenticate 和装饰器的2个方法,注销的功能,

在django中创建表,会自动创建一些django自带的表,先了解用户认证, 认证登录  先要引用  , from django.contrib import auth 有很多方法, 网站先有登录和认证, authenticate(),提供用户认证,验证用户名和密码是否正确,一般需要username ,password两个关键字参数, 认证信息有效,返回有一个User对象.authrenticate()会在User对象上设置一个属性标识,认证了该用户, 创建一个Book表,然后生成数据库 fro

Django进阶-Auth认证模块

转自:https://www.cnblogs.com/liwenzhou/p/9030211.html Django自带的用户认证系统 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Django作为一个完美主义者的终极框架,当然也会想到用户的这些痛点.它内置了强大的用户认证系统--auth,它默认使用 auth_user 表来存储用户数据. auth模块 authenticate(

Django之auth认证组件

原文链接:https://www.jianshu.com/p/612b3d76a1f5 Django之auth组件 前言:我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统. 此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Django作为一个完美主义者的终极框架,当然也会想到用户的这些痛点.它内置了强大的用户认证系统--auth,它默认使用 auth_user 表来存储用户数据. auth中提供的实用方法: - 创建用户 pytho

Django 【第七篇】Django自带的auth认证

一.auth模块 from django.contrib import auth 1 .authenticate()   :验证用户输入的用户名和密码是否相同 提供了用户认证,即验证用户名以及密码是否正确,一般需要username  password两个关键字参数 如果认证信息有效,会返回一个  User  对象.authenticate()会在User 对象上设置一个属性标识那种认证后端认证了该用户,且该信息在后面的登录过程中是需要的.当我们试图登陆一个从数据库中直接取出来不经过authent

django 自带的auth认证系统

版本: python2.7 django 1.8.16 project名称:site_test, app: study 目录结构: -> site_test :tree . ├── db.sqlite3 ├── manage.py ├── site_test │   ├── __init__.py │   ├── __init__.pyc │   ├── settings.py │   ├── settings.pyc │   ├── urls.py │   ├── urls.pyc │   ├

Django之auth模块(用户认证)登陆组件

auth模块简介 auth模块是对登录认证方法的一种封装,之前我们获取用户输入的用户名及密码后需要自己从user表里查询有没有用户名和密码符合的对象, 而有了auth模块之后就可以很轻松的去验证用户的登录信息是否存在于数据库中. 除此之外,auth还对session做了一些封装,方便我们校验用户是否已登录 auth里的方法 如果想使用auth模块的方法,必须要先导入auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法

Django内置模块auth实现认证功能代码

auth 模块的知识点, 一,用户认证 1,创建超级用户(此步之所以这么做,是用于将用户名密码使用命令写入auth_user表中 (此表不能手工写,因为password是加密后的字串)) python manage.py createsuperuser 输入用户名 xiaohei 输入邮箱.... 输入密码xiaohei1234 去数据库里就能看到auth插件,auth_user表对应的信息了 二,views.py中的核心代码 2.1导入模块 from django.contrib import

Django 自带认证功能auth模块和User对象的基本操作

一.auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: authenticate()    提供了用户认证,即验证用户名以及密码是否正确,一般需要username,password两个关键字参数. 如果认证信息有效,会返回一个  User  对象.authenticate()会在User 对象上设置一个属性来标识后端已经认证了该用户,且该信息在后续的登录过程中是需要的. user = au

Django之auth模块用户认证模块

一.Auth模块 1)auth模块是什么.登录后台使用的账号密码,则就是使用的auth模块创建的表 Auth模块是Django自带的用户认证模块: 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统. 此时我们需要实现包括用户注册.用户登录.用户认证.注销.修改密码等功能,这还真是个麻烦的事情呢. Django作为一个完美主义者的终极框架,当然也会想到用户的这些痛点.它内置了强大的用户认证系统--auth, 它默认使用 auth_user 表来存储用户数据. 2)auth模块的功能