昨天我们介绍了如何发送验证信,今天我们要来写信箱验证API的逻辑啦~~
以下是我的程序码
@csrf_protect
def check(request,token): #信箱验证
if request.method == "POST":
try:
data = json.loads(bytes.decode(request.body,"utf-8"))
token_use = email_token()
email = token_use.confirm_token(token)
user = UserProfile.objects.get(email=email)
user.is_active = True
user.save()
message = {"status":"0"}
except Exception as e:
print(e)
message = {"status":"1"}
return JsonResponse(message)
这边说明一下function
UserProfile.objects.get(email=email)
:这就是比对资料库是否跟经由验证信里解密的email一样,有一样的话,返回资料库里符合条件的使用者。
user.is_active
:标注活跃帐号,作为验证信通过的依据。
user.save()
:储存修改的资料
所以我的想法,大致上的一个流程是透过使用者者输入的email做generate_token
加密签名,收到後经由我们检查验证码的APItoken_use.confirm_token
解密後,得到email,再从资料库抓取「注册时输入」的信箱跟「验证时输入」的信箱相符合的使用者资料user = UserProfile.objects.get(email=email)
,最後user.is_active = True
对已验证的使用者帐户做一个活跃的标记,当然夥伴们你也可以拿email以外的东西作为验证码去加密签名,取得之後比对是否符合。
我们明天要来设定这两支API的url并且测试看看罗~~~
<<: Progressive Web App 推播通知行为 (25)
Golang http套件小疑问 在练习了golang的http套件之後,对於这部分萌芽了一个想法 ...
前情提要: 写了30天关於JavaScript文章,只有一个强烈的感觉: 真的像是在追一个人,而且是...
相信一定有很多很多人有这麽听人说过: 「要肯花钱,才能做好资安」 「资安就是要花钱才能做好」 「老板...
今天要来看的是JavaScript RegExp 对象,因为刚好最近做表单要用到,因此就来顺便做点笔...
前几天我们做完layout後,我们发现如果透过让view显示or不显示的方式,会让我们的整个布局稍...