zoukankan      html  css  js  c++  java
  • 关于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也被删除,这说明我们的思路是没有错误的,当然这只是最基本的用户登录思路,真正实用时,我们需要进一步完善我们的认证系统。

  • 相关阅读:
    设计模式(四)——代理、模板、命令、访问者、迭代器、观察者
    设计模式(三)——桥接、装饰、组合、外观、享元
    设计模式(二)——工厂、原型、建造者、适配器
    设计模式(一)——设计原则、单例
    MySQL索引原理和锁
    MySQL(四)——索引使用等
    【摘】1范数与2范数优缺
    随机森林相关
    一些SEED数据集介绍
    神经网络的非线性
  • 原文地址:https://www.cnblogs.com/lomooo/p/7434924.html
Copyright © 2011-2022 走看看