完成基本审核功能
Change-Id: Ib93823f864d5340b034a37af4e4cb3fb2cd5491a
diff --git a/TRM/back/app/functions/Fpost.py b/TRM/back/app/functions/Fpost.py
index 5651e8b..2f07b4a 100644
--- a/TRM/back/app/functions/Fpost.py
+++ b/TRM/back/app/functions/Fpost.py
@@ -1,6 +1,8 @@
from ..models.users import User as users
from ..models.post import Post as post
-
+import secrets
+import hashlib
+from datetime import datetime, timedelta
from sqlalchemy.orm import Session
class Fpost:
def __init__(self,session:Session):
@@ -23,9 +25,48 @@
return True
def review(self,postid,status):
+ print(status)
res=self.session.query(post).filter(post.id==postid).first()
if not res:
return False
res.status=status
self.session.commit()
- return True
\ No newline at end of file
+ return True
+
+ def createtoken(self, userid):
+ """
+ 根据userid创建token并插入到数据库
+ :param userid: 用户ID
+ :return: 生成的token字符串
+ """
+ # 生成随机盐值
+ salt = secrets.token_hex(16)
+
+ # 创建哈希值:userid + 当前时间戳 + 随机盐值
+ current_time = str(datetime.now().timestamp())
+ hash_input = f"{userid}_{current_time}_{salt}"
+
+ # 生成SHA256哈希值作为token
+ token = hashlib.sha256(hash_input.encode()).hexdigest()
+
+ # 设置时间
+ created_time = datetime.now()
+ expires_time = created_time + timedelta(days=1) # 一天后过期
+
+ try:
+ # 创建新的token记录
+ new_token = Token(
+ token=token,
+ expires_at=expires_time,
+ created_at=created_time
+ )
+
+ # 假设self.session是数据库会话对象
+ self.session.add(new_token)
+ self.session.commit()
+
+ return token
+
+ except Exception as e:
+ self.session.rollback()
+ raise Exception(f"创建token失败: {str(e)}")
\ No newline at end of file