Django基础7——用户认证系统、Session管理、CSRF安全防护机制
from django.contrib import auth
from django.contrib.auth.decorators import login_required
from django.shortcuts import render, redirect
from django.http import HttpResponse
from django.template.context_processors import csrf_token
from django.views.decorators.csrf import csrf_exempt, csrf_protect
# 用户登录
def user_login(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(request, username=username, password=password)
if user is not None:
auth.login(request, user)
return redirect('home')
return render(request, 'login.html', {'csrf_token': csrf_token})
# 用户登出
@login_required
def user_logout(request):
auth.logout(request)
return redirect('home')
# 用户注册
def user_register(request):
if request.method == 'POST':
# 注册逻辑
return render(request, 'register.html', {'csrf_token': csrf_token})
# 使用CSRF保护的视图
@csrf_protect
def csrf_protected_view(request):
return HttpResponse('CSRF protected view')
# 禁用CSRF保护的视图
@csrf_exempt
def csrf_exempt_view(request):
return HttpResponse('CSRF exempted view')
这个代码实例提供了用户登录、登出、注册的简单示例,并展示了如何使用Django的认证系统和会话管理功能。同时,代码中包含了如何使用装饰器login_required
来保护视图,以及如何使用csrf_token
上下文处理器来防止CSRF攻击。
评论已关闭