import time import datetime import jwt from django.conf import settings from rest_framework.response import Response from django.contrib.auth.models import User def generate_token(user): """ :param user: 用户对象 :return: 生成的token """ payload = { 'user_id': user.id, 'username': user.username, 'exp': datetime.datetime.utcnow() + datetime.timedelta(weeks=1) # token过期时间 1week } token = jwt.encode(payload=payload, key=settings.SECRET_KEY, algorithm='HS256') return token def decode_token_exp_time(token): try: res_dict = jwt.decode(token, settings.SECRET_KEY, algorithms=['HS256']) exp = res_dict.get('exp') exp_time = time.ctime(exp) return exp_time except Exception as e: return None