Skip to content
apps/user/authentication.py
python
from django.conf import settings
from itsdangerous import URLSafeTimedSerializer, BadSignature, SignatureExpired


SECRET_KEY = getattr(settings, 'SECRET_KEY', 'default-key')
TOKEN_EXPIRES = 3600 * 2  # 2小时有效期
serializer = URLSafeTimedSerializer(SECRET_KEY)


def generate_token(user):
    return serializer.dumps({'user_id': user.id})


def verify_token(token):
    try:
        data = serializer.loads(token, max_age=TOKEN_EXPIRES)
        return data.get('user_id')
    except SignatureExpired:
        return None  # 过期
    except BadSignature:
        return None  # 无效

欢迎来到 Laazua 的站点