[Day23] 信箱验证API – views

昨天我们介绍了如何发送验证信,今天我们要来写信箱验证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

这边说明一下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)

>>:  [DAY 23]纠团通知功能(3/3)

Golang 转生到web世界 - http套件小疑问

Golang http套件小疑问 在练习了golang的http套件之後,对於这部分萌芽了一个想法 ...

追求JS小姊姊系列 Day30 -- 所以姊姊追到哪了?

前情提要: 写了30天关於JavaScript文章,只有一个强烈的感觉: 真的像是在追一个人,而且是...

资安设备与产品篇

相信一定有很多很多人有这麽听人说过: 「要肯花钱,才能做好资安」 「资安就是要花钱才能做好」 「老板...

Day29 javascript RegExp介绍

今天要来看的是JavaScript RegExp 对象,因为刚好最近做表单要用到,因此就来顺便做点笔...

【day30】chatRoom修改画面 X 动态修正layout

前几天我们做完layout後,我们发现如果透过让view显示or不显示的方式,会让我们的整个布局稍...