Django生成token的第三方封装

#!/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) # 定义为全局变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值