Files
SMANAGE/_api_backup/TempLateAPI/GERP/API/AccountActivation/ActivateAccount.api
T
2026-06-16 11:55:14 +08:00

35 lines
1.2 KiB
Plaintext

from PDAPI import *
__metadata__ = {
"methods": ["POST"],
"blueprint": "GERP",
"permission": 1.0,
"attributes": [],
"limit": "1 per 10 seconds",
"json": [
{"Name": "Code", "Type": "str", "Length": 12}
]
}
def HandleRequest():
AACT: AccountActivation
ELTUser: GERPUser = flask.g.ELTUser
Code = flask.request.json["Code"]
if ELTUser.UserEmailVerify:
return {"code": 2, "message": "已验证"}
if not (AACT := AccountActivation.query.filter(AccountActivation.UserUUID == ELTUser.UserUUID).first()):
return {"code": 1, "message": "不存在此验证代码"}
if time.time() - int(AACT.CreateTime.timestamp()) > 15 * 60:
return {"code": 1, "message": "超时"}
if AACT.AccountActivationCode.hex() != Code:
return {"code": 1, "message": "验证代码不符合"}
DeleteStmt = sqlalchemy.delete(AccountActivation).where(AccountActivation.UserUUID == ELTUser.UserUUID)
ELTUser.UserEmailVerify = 1
try:
db.session.execute(DeleteStmt)
db.session.add(ELTUser)
db.session.commit()
except:
db.session.rollback()
return {"code": 1, "message": "验证代码服务器同步失败"}
return {"code": 0}