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.youkuaiyun.com/adminwg/article/details/126185127
本文介绍了Django的logout()方法,用于用户登出。logout()方法负责清理session,删除用户的会话信息,从而实现用户登出。它接受request参数,通过sessionid找到并删除对应用户的数据,同时清除cookie中的sessionid。文中还提供了一个简单的登出视图LogoutView的实现示例。
552

被折叠的 条评论
为什么被折叠?



