Django笔记-实现用户的登出
-
Django logout()方法介绍:
一、登录login(user,request):
将通过认证的用户的唯一标识信息(主键id),通过哈希加密写入到当前session会话中,退出登录:正好和登录相反(清理session会话信息)二、登出logout()方法:
1.Django用户认证系统提供了logout()方法
2.封装了清理session的操作,帮助我们快速实现登出一个用户
3.logout(request)位置:django.contrib.auth.init.py文件中
4.logout(request)接受一个request参数,从request获取cookie中的名为sessionid的值,通过哈希解密为用户的唯一标识信息(主键id),然后通过id查询数据库中是否有该用户,然后删除redis或者数据库表中的session会话信息,并且删除cookie中sessionid这一项(通过方法request.session.flush())
5.该函数不会有返回值,如果用户未登录,不会报错(匿名用户) -
测试
1.登录查看cookies和session会话
2.编写登出视图(登出用户)
from django.contrib.auth import login, authenticate, logout from django.views import View from django import http class LogoutView(View): def get(self, request): # 清理session(redis中的会话,请求对象cookie中的sessionid)-request.session.flush() logout(request=request) response = http.JsonResponse({ 'errmsg': 'ok' }) # 可以删除指定cookie # request.session.clear() # response.delete_cookie('value') return response
上一篇-自定义用户登录:https://blog.csdn.net/adminwg/article/details/126185127