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}