最近弄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的更多相关文章

  1. django系列7.2--django中的cookie和session基本操作,浏览器登陆验证的不同实现

    django中的cookie和session(02)–操作 一.Django中的cookie操作 ctrl + shift + del 是谷歌浏览器中清除页面缓存和cookie的快捷键 1.设置coo ...

  2. django rest_framework 实现用户登录认证

    django rest_framework 实现用户登录认证 1.安装 pip install djangorestframework 2.创建项目及应用 创建过程略 目录结构如图 3.设置setti ...

  3. {Django基础八之cookie和session}一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session

    Django基础八之cookie和session 本节目录 一 会话跟踪 二 cookie 三 django中操作cookie 四 session 五 django中操作session 六 xxx 七 ...

  4. 基于jwt的用户登录认证

    最近在app的开发过程中,做了一个基于token的用户登录认证,使用vue+node+mongoDB进行的开发,前来总结一下. token认证流程: 1:用户输入用户名和密码,进行登录操作,发送登录信 ...

  5. 2018-8-16JWTtoken用户登录认证思路分析9502751

    2018-8-16JWTtoken用户登录认证思路分析9502751 JWT token在商城中的实现 class UserView(CreateAPIView): serializer_class ...

  6. IM开发基础知识补课(四):正确理解HTTP短连接中的Cookie、Session和Token

    本文引用了简书作者“骑小猪看流星”技术文章“Cookie.Session.Token那点事儿”的部分内容,感谢原作者. 1.前言 众所周之,IM是个典型的快速数据流交换系统,当今主流IM系统(尤其移动 ...

  7. Django---Django中使用COOKIE和SESSION

    Django---Django中使用COOKIE和SESSION 一丶Cookie cookie的由来 # HTTP协议是无状态的. # 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请 ...

  8. 第74节:Java中的Cookie和Session

    第74节:第74节:Java中的Cookie和Session ServletContext: 什么是ServletContext,有什么用哦,怎么用呢? 启动服务器后,会给每个应用程序创建一个Serv ...

  9. Node中的Cookie和Session

    1.Cookie HTTP是无状态协议.例:打开一个域名的首页,进而打开该域名的其他页面,服务器无法识别访问者.即同一浏览器访问同一网站,每次访问都没有任何关系. Cookie的原理是:客户端浏览器在 ...

随机推荐

  1. redis 集群引出hash一致性算法

    写的很棒的文章 https://blog.csdn.net/bntX2jSQfEHy7/article/details/79549368 这篇分析的更叼 https://www.jianshu.com ...

  2. POST调用WCF方法-项目实践

    做即时通信项目时,需要与OA系统对接接口,主要目标是实现在OA里进行一项事项,通过调用我们的接口,即时通知过来,并弹出消息框提示一下.我们的即时通信使用的WCF服务进行通信,在客户端调用通信时,用的就 ...

  3. ajax post json格式返回

    Ajax.aspx: Response.ContentType = "application/json"; Response.Write("{result: '" ...

  4. VS中无法打开Qt资源文件qrc

    问题:双击项目中的qrc文件没反应. 解决方法: 网上搜索的方法说是要,右击->打开方式,添加qrceditor编辑器 但我的项目中Qt Resource Editor已经是默认的了. 那就是q ...

  5. [转]java 关于httpclient 请求https (如何绕过证书验证)

    原文:http://www.blogjava.net/hector/archive/2012/10/23/390073.html 第一种方法,适用于httpclient4.X 里边有get和post两 ...

  6. 【转】Asp.Net Core2.0获取客户IP地址,及解决发布到Ubuntu服务器获取不到正确IP解决办法

    1.获取客户端IP地址实现方法(扩展类) using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.ModelBinding; u ...

  7. Emacs中的代码折叠控制

    之前在别的编辑器里用到代码折叠的功能很好用. 对 Emacs 不够熟悉,作为一只坚强的懒癌晚期患者,一直没开启这个功能,使用石器时代的标记法来记录每个结构的起止位置,效率可想而知. 今天可算是找着它啦 ...

  8. Kostya Keygen#2分析

    主要就是构造408ede处的2A个字节.. 其中第一个字节必须为0x2D,倒数第二个字节必须为0x36,倒数第三个字节为0x31. 之后,对这个2A字节的缓冲区,要满足一些条件: 1\ 在408ede ...

  9. ansible 剧本

    ansible的管理与剧本   首先我们安装一个ansible. 在7版本,直接用yum安装就可以 yum -y install ansible 然后清空ansible的配置文件,在里面写入自己需要管 ...

  10. Python读取xlsx文件

    Python读取xlsx文件 脚本如下: from openpyxl import load_workbook workbook = load_workbook(u'/tmp/test.xlsx') ...