惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
The GitHub Blog
The GitHub Blog
Engineering at Meta
Engineering at Meta
Microsoft Azure Blog
Microsoft Azure Blog
The Register - Security
The Register - Security
Stack Overflow Blog
Stack Overflow Blog
博客园 - 三生石上(FineUI控件)
T
Threat Research - Cisco Blogs
S
SegmentFault 最新的问题
V2EX - 技术
V2EX - 技术
Hacker News: Ask HN
Hacker News: Ask HN
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
P
Proofpoint News Feed
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
M
MIT News - Artificial intelligence
AI
AI
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
P
Proofpoint News Feed
Hacker News - Newest:
Hacker News - Newest: "LLM"
B
Blog
N
News and Events Feed by Topic
N
News | PayPal Newsroom
Google DeepMind News
Google DeepMind News
酷 壳 – CoolShell
酷 壳 – CoolShell
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
WordPress大学
WordPress大学
C
Cybersecurity and Infrastructure Security Agency CISA
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
U
Unit 42
腾讯CDC
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
The Cloudflare Blog
H
Help Net Security
Recent Announcements
Recent Announcements
P
Privacy & Cybersecurity Law Blog
IT之家
IT之家
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Security Archives - TechRepublic
Security Archives - TechRepublic
L
LINUX DO - 热门话题
Martin Fowler
Martin Fowler
MongoDB | Blog
MongoDB | Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
H
Heimdal Security Blog
博客园 - 聂微东
S
Securelist
大猫的无限游戏
大猫的无限游戏
Cloudbric
Cloudbric
Cisco Talos Blog
Cisco Talos Blog

博客园 - Jason Cui

求助:SQL Server 2005数据库修复后无法收缩 Django:更简单的实现记住密码功能 用Bugols管理自己的项目 请教:为何Asp.net网站会自己弹出用户名密码输入框? 中文在线Bug管理系统 为什么要创建“理财易”? 继续招聘,请个好用的人可真难啊。 招聘两个Asp.net程序员 记账理财网站列表,用户自己挑一个用吧 坚持,究竟有多难? 又改了一次Django的源代码 请教,关于跨站提交的问题,和网站恶意抓取的防止 请教一个有关反射和缓存的高难度问题 诚聘:Asp.net高级技术人员两名 幸亏没有选择Ruby On Rails 关于委托的一次实践 Django运行环境配置 Django学习笔记 Python下的Lucene,PyLucene
修改了一下Django的源码
Jason Cui · 2006-12-01 · via 博客园 - Jason Cui

通常系统的要求,最简单的登录部分,通常都会有一个记住密码的功能,而像豆瓣这样的网站,会自动记住密码,并没有给用户选择的机会。不过一来它的丢失密码也不会造成太大的损失,二来我不知道它是不是使用了Django框架,所以不好说。但是以后如果他想做在线销售,这个问题是肯定要解决的。

在Django的实现里,由配置文件中的一个配置来决定是否启用记住密码功能,而且默认是启用的,如果改了这个配置,就变成浏览器生命周期的Cookie,但是这样的话,就没有办法做记住密码的功能了,只能在两者中间选一个。

后来考虑了网上的一篇文章,在Django的目录下,contrib/sessions/下面有个middleware.py,这就是session的实现过程。在它的processresponse里面,有一个判断,如果这个配置为浏览器生命周期,就会写一个expired为None的Cookie到客户端,否则,写一个过期时间为两周的Cookie。

为了最简化修改过程(因为它很快就会出1.0版本了,到时候恐怕又要改一次),做了一个偷懒的修改:直接在这里取session里面的'issaved'变量的值,如果是True,同样会保存两周的Cookie,否则,用默认情况。然后在用户登录的时候,如果用户选了这个框,就在session里面添加一个为True的这个变量,一切OK,只要改三行代码。不过麻烦的是每次更新django都要修改,而且每次迁移服务器环境也要改,忘记一次就麻烦了,这个记住密码就会失灵。