Prepare ERP source for Gitea deployment
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
import secrets
|
||||
from fastapi import Request
|
||||
|
||||
OTP_CODE_KEY = "otp_code"
|
||||
OTP_VERIFIED_KEY = "otp_verified"
|
||||
|
||||
def start_otp(request: Request) -> str:
|
||||
# 6-digit numeric code
|
||||
code = str(secrets.randbelow(900000) + 100000)
|
||||
request.session[OTP_CODE_KEY] = code
|
||||
request.session[OTP_VERIFIED_KEY] = False
|
||||
return code
|
||||
|
||||
def verify_otp(request: Request, code: str) -> bool:
|
||||
expected = request.session.get(OTP_CODE_KEY)
|
||||
if expected and code and code.strip() == expected:
|
||||
request.session[OTP_VERIFIED_KEY] = True
|
||||
request.session.pop(OTP_CODE_KEY, None)
|
||||
return True
|
||||
return False
|
||||
|
||||
def is_otp_verified(request: Request) -> bool:
|
||||
return bool(request.session.get(OTP_VERIFIED_KEY))
|
||||
Reference in New Issue
Block a user