장고 인증 모듈에서 새로 고침

0907 자기 요약

장고 인증 모듈에서 새로 고침

from django.contrib import auth

집합

기본 인증 양식

auth기본값은 내장 사용하는 user양식을

사용자 정의 인증 양식

에 있어야합니다 settings.py이야기 Django, 지금 새로 정의 된 사용하는 UserInfo사용자 인증을 수행하는 테이블. 다음과 같은 말로 :

# 引用Django自带的User表,继承使用时需要设置
AUTH_USER_MODEL = "app名.UserInfo"

에서 modles.py양식 모델을 만들 수 있습니다 AbstractUser상속 표현 된 우리는 사용자 인증과 함께 제공되는 소스 코드에서 볼 수 있기 때문에 상속 할 AbstractUser클래스는 또한 우리가 다음 콘텐츠를 사용자 정의 할 수 있습니다 모든 상속 할 수 있습니다 자신의

from django.contrib.auth.models import AbstractUser
class UserInfo(AbstractUser):
    新增的内容
    通过源码我们可以看出自带的几个内容

AbstractUser내장 필드

源码里的内容

username :账号
first_name:姓
last_name:名
email:邮箱
is_staff : 用户是否拥有网站的管理权限.
is_active: 是否允许用户登录, 设置为 False,可以在不删除用户的前提下禁止用户登录。
date_joined:创建日期

그의 부모 봐AbstractBaseUser

password:密码
last_login:最后一次登入时间
is_active:是否允许用户登录, 设置为 False,可以在不删除用户的前提下禁止用户登录。

그의 다른 부모 봐PermissionsMixin

is_superuser:是否为超级账号也就管理员
groups:分组
user_permissions:用户权限

우리는이 기준에 추가 할 수 있습니다

관련 II. 등록

일반 사용자 만들기

create_user()

새로운 사용자 인증의 서비스를 만들 수있는 방법은, 그렇게에 필요한 매개 변수 (사용자 이름, 암호) 등을 제공하는 것이 필요하다.

사용법 :

from django.contrib.auth.models import User
user = User.objects.create_user(username='用户名',password='密码',email='邮箱',...)

슈퍼 유저 만들기

create_superuser()

새로운 슈퍼 사용자 인증 만들기 등 필요한 매개 변수 (사용자 이름, 암호) 등을 제공하는 방법을 제공한다.

사용법 :

from django.contrib.auth.models import User
user = User.objects.create_superuser(username='用户名',password='密码',email='邮箱',...)

III. 로그인 관련

로그인 확인

authenticate()

즉, 사용자 이름과 패스워드가 맞는지를 확인하기 위해, 사용자 인증 기능을 제공하고, 그것은 일반적으로 사용자 이름, 패스워드 개의 주요 파라미터 걸린다.

인증 (유효한 사용자 이름과 암호가 올바른지)에 성공하면, 그것은 사용자 개체를 반환합니다.

() 사용자 인증은 사용자를 인증 한 식별 대상의 후단에 속성을 설정하고, 후속 공정에서의 로그인 정보가 필요하다.

사용법 :

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

로그인 요청에 저장된 객체

login(HttpRequest, user)

이 함수는 HttpRequest를 객체 인증 사용자 개체를합니다.

이 기능은 사용자 로그인 기능을 구현합니다. 본질적으로는 후단의 사용자 세션과 관련된 데이터를 생성한다.

사용법 :

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)
    # Redirect to a success page.
    ...
  else:
    # Return an 'invalid login' error message.
    ...

이 설정을 직접 할 수 있습니다 후 request.user지적账号相关信息

is_authenticated인가True

로그인 요청 제거에 저장된 객체

logout(request)

이 함수는 HttpRequest를 객체, 돌아올 수없는 값을합니다.

함수가 호출 될 때, 현재의 요구는 모든 세션 정보를 삭제합니다. 사용자가 로그인하지 않은 경우에도이 기능도 불평하지 않고 사용합니다.

사용법 :

from django.contrib.auth import logout
   
def logout_view(request):
  logout(request)
  # Redirect to a success page.

이 직접 설정 한 후 request.user빈에

is_authenticated인가False

인증으로

is_authenticated()

현재 요청 인증 여부를 결정하는 데 사용됩니다.

사용법 :

def my_view(request):
  if not request.user.is_authenticated():
    return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))

페이지 작업

{% if request.user.is_authenticated %}
    如果里面有通过验证的user就为真没有就没否

IV. 로그인 장식

login_requierd()

인증은보기에 체크를 추가하는 빠른 로그인을위한 장식 도구로 우리를 제공합니다.

사용법 :

from django.contrib.auth.decorators import login_required
      
@login_required
def my_view(request):
  ...

사용자가 로그인하지 않은 경우 (경로로 리디렉션됩니다 성공적으로 착륙 후) '/ / 계정 / 로그인'장고 기본 로그인 URL로 이동하고 절대 경로에 액세스 할 수있는 현재의 URL을 전달합니다.

당신은 로그인 URL을 사용자 정의하려는 경우, 당신은 settings.py 파일에 LOGIN_URL에 의해 수정 될 필요가있다.

예 :

LOGIN_URL = '/login/'  # 这里配置成你项目登录页面的路由

V. 암호

검사 암호가 올바른지

check_password(password)

올바른 방법이 있는지 암호 인증의 서비스를 확인하기 위해, 당신은 현재 요청에 사용자의 암호를 제공해야합니다.

암호는 올바른 반환 참, 그렇지 않으면 False입니다.

사용법 :

ok = user.check_password('密码')

암호 변경

set_password(password)

정식에 의해 제공되는 암호를 변경하는 방법은 새로운 암호 파라미터로서 설정 받았다.

참고 : 사용자 개체에 대해 저장 메서드를 호출해야합니다 설정 한 후! ! !

사용법 :

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

VI. 참고

上面的写的都是基于auth自带的user表达写的

가져 오기

from django.contrib.auth.models import User

그것은 사용자 지정 양식하시기 바랍니다 경우user换成你自定义的表单名称

추천

출처www.cnblogs.com/pythonywy/p/11483464.html