Auth組件

Django Auth認證組件

Auth組件是什麼

Django爲咱們寫好的一個綜合的用戶管理模塊。這個模塊爲咱們提供了關於用戶管理的大多數方法。html

使用

from django.contrib import auth

方法

  • authenticate(username,password)python

    判斷用戶名密碼是否存在,存在返回認證的對象,不然返回Nonedjango

    user_obj = auth.authenticate(username = username, password = password)
    print(user_obj)
  • is_authenticatesession

    判斷當前請求是否通過驗證app

    if not request.user.is_authenticated():
        return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))
  • login(user_obj)網站

    登陸:須要將認證過得對象傳入,會自動幫你添加sessionui

    auth.login(request, user_obj)
  • logout(request)url

    退出登陸code

    auth.logout(request)
  • login_requierdhtm

    語法糖,自動幫咱們作權限認證,例若有沒有登陸,login_url設置跳轉的接口

    @login_required(login_url="/login")
    def home(request):
        return render(request, "home.html")
  • create_user

    建立普通用戶

    from django.contrib.auth.models import User
    user_obj = User.objects.create_user(username=username, password=password)
  • create_superuser

    建立管理員用戶

    user_obj = User.objects.create_superuser(username=username, password=password, email=email)   # 管理員用戶必需要傳三個參數
  • check_password

    查看密碼時候一致

    is_pwd = request.user.check_password(password)
  • set_password

    設置新密碼,設置密碼必需要保存,而且修改密碼後session會失效,這是Django的機制使然

    request.user.set_password(new_pwd)
    request.user.save()

方法

  • is_staff : 用戶是否擁有網站的管理權限
  • is_active : 是否容許用戶登陸, 設置爲 False,能夠在不刪除用戶的前提下禁止用戶登陸

繼承拓展User表字段

from django.contrib.auth.models import AbstractUser
class UserInfo(AbstractUser):
    
    phone = models.CharField(max_length=11, null=True, unique=True)
    addr = models.CharField(max_length=32, null=True)

在models.py 中添加完拓展類後還須要在setting.py 中配置

AUTH_USER_MODEL = "app名.UserInfo"
相關文章
相關標籤/搜索