35 lines
1.2 KiB
Plaintext
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} |