User authentication in Django(用户认证)

Posted wangyue0925

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了User authentication in Django(用户认证)相关的知识,希望对你有一定的参考价值。

一,概述:

auth 系统包括:

1)Users

2)Permissions: Binary (yes/no) flags designating whether a user may perform a certain task.(权限:二进制(是/否)标志,指示用户是否可以执行某个任务。)

3)Groups: A generic way of applying labels and permissions to more than one user.(组:向多个用户应用标签和权限的通用方法。)

4)A configurable password hashing system(一个可配置的密码散列系统)

5)Forms and view tools for logging in users, or restricting content(用于用户登录或者限制内容的表单和视图工具)

6)A pluggable backend system(一个可插入的后台系统)

7)Password strength checking(密码强度检查)

8)Throttling of login attempts(限制登录尝试)

9)Authentication against third-parties (OAuth, for example)(针对第三方的认证,例如(OAuth))

Installation(安装)

1)INSTALLED_APPS中配置 django.contrib.auth‘ 和django.contrib.contenttypes

2)在MIDDLEWARE中配置 ‘django.contrib.sessions.middleware.SessionMiddleware‘, ‘django.contrib.auth.middleware.AuthenticationMiddleware‘,

 

Usage(用法)

一,Using the Django authentication system?(使用Django 认证系统)

1)User objects:The primary attributes of the default user are:(默认用户的主要属性): username, password, email,firstname,lastname

2)Creating users:

>>> from django.contrib.auth.models import User
>>> user = User.objects.create_user(‘john‘, ‘[email protected]‘, ‘johnpassword‘)

# At this point, user is a User object that has already been saved
# to the database. You can continue to change its attributes
# if you want to change other fields.
>>> user.last_name = ‘Lennon‘
>>> user.save()

 3)Creating superusers

$ python manage.py createsuperuser --username=joe [email protected]

 4)Changing passwords

>>> from django.contrib.auth.models import User
>>> u = User.objects.get(username=‘john‘)
>>> u.set_password(‘new password‘)
>>> u.save()

 5)Authenticating users

from django.contrib.auth import authenticate
user = authenticate(username=‘john‘, password=‘secret‘)
if user is not None:
    # A backend authenticated the credentials
else:

 6)Authentication in Web requests判断用户是否登录

if request.user.is_authenticated:
    # Do something for authenticated users.(已登录)
    ...
else:
    # Do something for anonymous users.

 7)How to log a user in(如何登录用户)

from django.contrib.auth import authenticate, login

def my_view(request):
    username = request.POST[‘username‘]
    password = request.POST[‘password‘]
    user = authenticate(request, username=username, password=password)
    if user is not None:
        login(request, user)
        # Redirect to a success page.
        ...
    else:
        # Return an ‘invalid login‘ error message.

 8)How to log a user out?(如何退出)

from django.contrib.auth import logout

def logout_view(request):
    logout(request)
    # Redirect to a success page.

 8)登录装饰器(The login_required decorator?)

from django.contrib.auth.decorators import login_required

@login_required
def my_view(request):

 

 

 


以上是关于User authentication in Django(用户认证)的主要内容,如果未能解决你的问题,请参考以下文章

freenode configuration sasl authentication in weechat

MariaDB 在 `mysql.user` 表中同时具有 `authentication_string` 和 `Password` 字段

Command failed with error 18 (AuthenticationFailed): ‘Authentication failed.’

django redirect_authenticated_user

passportjs TypeError:User.authenticate 不是函数

Python Django - 模板标签中的 % request.user.is_authenticated % 不适用于 JS