#!/usr/bin/env python
# -*- coding:utf-8 -*-
'''
@FileName :utils.py
@desc : 邮箱验证
@Author :Young
@IDE :PyCharm
@Time :2021/2/21 0021 9:44
'''
#一是产生token发送邮件,
#二是处理验证连接,采用base64进行加密,采用itsdangrous进行序列化
from itsdangerous import URLSafeTimedSerializer as utsr #URLSafeTimedSerializer将其他类型转化为字符串
import base64
from django.conf import settings as django_settings
class Token: #自定义模块
def __init__(self, security_key):
self.security_key = security_key
self.salt = base64.encodebytes(security_key.encode('utf8')) #将非ASCILL码字符转化为ASCILL码字符,salt是用来做加密的随机字符串
def generate_validate_token(self, username): #生成一个Token
serializer = utsr(self.security_key) #以security_key为基准产生一个序列化对象 (加密)
return serializer.dumps(username, self.salt) #dumps产生一个字符串
def confirm_validate_token(self, token, expiration=3600): #验证 (解密)
serializer = utsr(self.security_key)
return serializer.loads(token, salt=self.salt,max_age=expiration) #max_age是过期时间,loads是做序列化的
def remove_validate_token(self, token): #过期之后将token移除
serializer = utsr(self.security_key)
print(serializer.loads(token, salt=self.salt))
return serializer.loads(token, salt=self.salt)
token_confirm = Token(django_settings.SECRET_KEY) # 定义为全局变量
Django生成token的第三方封装
最新推荐文章于 2023-10-20 17:03:22 发布