24 lines
997 B
Python
24 lines
997 B
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
API Token 数据模型
|
|
个人访问令牌,用于API调用认证
|
|
"""
|
|
from sqlalchemy import Column, String, DateTime, Boolean, Text
|
|
|
|
from app.base_model import BaseModel
|
|
|
|
|
|
class ApiToken(BaseModel):
|
|
"""API Token 模型"""
|
|
__tablename__ = "core_api_token"
|
|
|
|
name = Column(String(100), nullable=False, comment="令牌名称")
|
|
token_hash = Column(String(64), nullable=False, unique=True, index=True, comment="令牌哈希值(SHA-256)")
|
|
token_prefix = Column(String(255), nullable=False, comment="令牌前缀(用于识别)")
|
|
user_id = Column(String(21), nullable=False, index=True, comment="所属用户ID")
|
|
expires_at = Column(DateTime, nullable=True, comment="过期时间(NULL表示永不过期)")
|
|
last_used_at = Column(DateTime, nullable=True, comment="最后使用时间")
|
|
description = Column(Text, nullable=True, comment="令牌描述")
|
|
is_active = Column(Boolean, default=True, comment="是否启用")
|