本文主要是介绍Django调用SECRET_KEY对数据进行加密,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
对数据进行加密
在Django中进行加密可以直接调用django配置文件中的SECRET_KEY , 同时还需要导入itsdangerous模块中的TimedJSONWebSignatureSerializer进行加密
1. 实现加密方法 , 生成用户加密链接
# 生成用户加密链接
def generate_verify_email_url(user):# 调研加密方法s = TJ(settings.SECRET_KEY , 600) # 加密方法 , 有效时间data = {'id' : user.id,'email' : user.email}# 进行加密token = s.dumps(data)# 获得加密链接token_url = settings.EMAIL_VERIFY_URL + "?token=" + token.decode()return token_url
3. 校验加密信息
def check_verify_email_url(token):# 对链接进行解密s = TJ(settings.SECRET_KEY , 600)data = s.loads(token)user_id = data.get('user_id')email = data.get('email')# 从数据库中获取邮箱 , 使用try语句防止查询报错try:user = User.objects.get(id=user_id ,email=email)except:return Noneelse:return user
三. 校验用户请求
当用户点击邮箱发送的链接会像服务器发送一个请求
# 校验邮箱信息
class VerifyEmailView(View):def get(self , request):token = request.GET.get('token')if not token:return HttpResponseForbidden('缺少必要参数')user = check_verify_email_url(token)if not user:return HttpResponseForbidden("用户不存在")# 盘带你邮箱是否验证码if user.email_active == 0:# 邮箱没有验证user.email_active = 1user.save()return redirect('user_info_center')else:return HttpResponseForbidden("该邮箱已经注册")
创建视图
# 验证邮箱path('verification/' , views.VerifyEmailView.as_view() ),
这篇关于Django调用SECRET_KEY对数据进行加密的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!