关于修改密码的链接小功能完善想请教老师

来源:6-12 找回密码(2)

牛逼程序猿

2018-05-04

老师好,在老师讲忘记密码的功能的时候,讲到最后老师并没有完善在用户修改完密码之后,将修改密码的链接改为使用过了,我这里尝试完善该功能,但遇到了一些问题想向老师请教一下。

首先,我在EmailVerfyRecord数据数据表中添加了 is_use字段,布尔类型用来表示该链接是否使用

http://img.mukewang.com/szimg/5aec5ad900015e9c10590216.jpg


然后步骤二:

http://img.mukewang.com/szimg/5aec5b4f0001220a08800326.jpg

我在ResetView里添加了对该字段的判断,如果使用了则跳转到链接失效页面

步骤三:

http://img.mukewang.com/szimg/5aec5bdd0001106608080388.jpg

在这里用户修改完密码之后,我将is_use改为True

但是问题来了,我向邮箱发送了多条链接,所以数据库里面有多条记录,如果我步骤三那样写会报

MultipleObjectsReturned

所以我正确的写法应该是 all_record = EmailVerifyRecord.objects.get(email=email, code=active_code)

那么我就必须在ResetView那里把active_code用 hidden隐藏起来传到前端,再从ModifyPwdView里面将他拿出来才行。

我现在纠结的是2个:1如果向前端传递active_code会不会不安全,即使我用hidden隐藏起来了,

                                 2如果不传递active_code我就必须用filter将所有该邮箱的记录找出来并将所有记录的is_use改为True

所以想问问老师,实际开发的时候在这里是如何做逻辑处理的?

写回答

2回答

bobby

2018-05-07

你可以直接删除那条记录就行了 再进行修改就不行了

0
1
牛逼程序猿
非常感谢!
2018-05-15
共1条回复

牛逼程序猿

提问者

2018-05-04

另外请问老师为什么model中用BooleanFiled在数据库中显示的是Tinyint类型

0
1
bobby
boolean只有true和false两种值, 用tinyint正合适
2018-05-07
共1条回复

Python3.6+django+xadmin,打造在线教育平台

【毕设】Python 2.7到3.6 完美适配,Django升级2.0

3677 学习 · 4038 问题

查看课程