关于django用户登录认证中的cookie和session
最近弄django的时候在用户登录这一块遇到了困难,网上的资料也都不完整或者存在缺陷。
写这篇文章的主要目的是对一些刚学django的新手朋友提供一些帮助。前提是你对django中的session和cookie已经有了一定的了解。
我最基本的设想是当用户登陆了网站后,用户访问本网站的其他网页时依旧能识别其身份。
很多教程的方法是在用户的cookie中存储用户名,这种方法当然是非常不安全的。
其实只要我们使用了django中的session,django就会自动在用户的cookie中存储 sessionid ,用以识别用户。
比如,我们设计了一个用户登录的视图

其中我们使用了 request.session['username'] = username 来使用session保存用户名。
这样一来django便会自动设置在cookie中存储sessionid
我们来试验一下。
1.首先打开login页面,可以看到这时候cookie中只有我们的csrf的token

2.这时我们尝试登陆

3.登陆成功后,系统会为我们分配一个sessionid

4.这时假设我们在设计一个主页的视图,尝试根据session获取用户名,如果获取不到则说明,用户未登录

5.我们进入该页面,由于之前我们cookie中的sesionid还在,所以这里会显示我们的用户名

7.假如我们要登出,我们只需要使用session的 flush函数,django便会删除session以及用户cookie中的sessionid,视图如下

8.在我们登出之后,我们在刷新之前的主页,我们会发现,我们变成了游客,cookie中的sessionid也被删除,这说明我们的思路是没有错误的,当然这只是最基本的用户登录思路,真正实用时,我们需要进一步完善我们的认证系统。

关于django用户登录认证中的cookie和session的更多相关文章
- django系列7.2--django中的cookie和session基本操作,浏览器登陆验证的不同实现
django中的cookie和session(02)–操作 一.Django中的cookie操作 ctrl + shift + del 是谷歌浏览器中清除页面缓存和cookie的快捷键 1.设置coo ...
- django rest_framework 实现用户登录认证
django rest_framework 实现用户登录认证 1.安装 pip install djangorestframework 2.创建项目及应用 创建过程略 目录结构如图 3.设置setti ...
- {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session
Django基础八之cookie和session 本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 ...
- 基于jwt的用户登录认证
最近在app的开发过程中,做了一个基于token的用户登录认证,使用vue+node+mongoDB进行的开发,前来总结一下. token认证流程: 1:用户输入用户名和密码,进行登录操作,发送登录信 ...
- 2018-8-16JWTtoken用户登录认证思路分析9502751
2018-8-16JWTtoken用户登录认证思路分析9502751 JWT token在商城中的实现 class UserView(CreateAPIView): serializer_class ...
- IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token
本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...
- Django---Django中使用COOKIE和SESSION
Django---Django中使用COOKIE和SESSION 一丶Cookie cookie的由来 # HTTP协议是无状态的. # 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请 ...
- 第74节:Java中的Cookie和Session
第74节:第74节:Java中的Cookie和Session ServletContext: 什么是ServletContext,有什么用哦,怎么用呢? 启动服务器后,会给每个应用程序创建一个Serv ...
- Node中的Cookie和Session
1.Cookie HTTP是无状态协议.例:打开一个域名的首页,进而打开该域名的其他页面,服务器无法识别访问者.即同一浏览器访问同一网站,每次访问都没有任何关系. Cookie的原理是:客户端浏览器在 ...
随机推荐
- js点击加载更多可以增加几条数据的显示
<div class="list"> <div class="one"> <div class="img" ...
- istio路由配置
istio路由配置 istio的代理配置参考文档: 中文文档: https://istio.io/zh/docs/reference/config/istio.networking.v1alpha ...
- zzw原创_非root用户下安装nginx
想自己安装nginx,又不相用到root用户. 非root用户下(本文为用户bdctool)来ngnix安装,要依赖pcre库.zlib库等, 1. 下载依赖包:下载地址 pcre(www.pcre. ...
- Hive 外部表的练习(多表关联查询,以及分组,子查询)
Hive 外部表的练习 hive创建库和表操作 hive加载数据,4种发放 1.数据放在Linux创建表结构 进行加载 2.先定义表结构.将一个查询select语句结果插入到表中 3.数据先放在hdf ...
- AJAX如何实现和后端的交互(网页如何与 web 服务器进行通信)
在这里我们将会用一个姓名提示框案例来简单说明: 当用户在输入框中键入字符时,网页与 web 服务器进行通信,服务器返回提示信息,传给网页: 先看一下界面: 在html页面中: 思路:就是当用户在上面的 ...
- 【调试基础】Part 3 Window操作系统
API.DLL.消息
- --save-dev --save 的区别
--save 是发布会还在使用 --save-dev 是在开发中需要用到的 --save 依赖的文件在denpendencis下 --save-dev 依赖的文件都在dvedependencis下
- css3动画怎样能从下往上慢慢升上去
<!DOCTYPE html><html><head> <style> div { width:100px; height:100px; backgro ...
- Forth 内部解释程序工作流程
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- IoT experitment
Abstract: In order to solve the problems of complex experiment management, complicated teaching task ...