You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
724 B
28 lines
724 B
import binascii |
|
import requests |
|
|
|
from decouple import config |
|
from pyotp import TOTP |
|
|
|
|
|
def check_otp(name, realm, token): |
|
try: |
|
data = { |
|
"auth_name": config("AUTH_NAME", ""), |
|
"auth_token": TOTP(config("AUTH_SEED", "")).now(), |
|
"auth_realm": config("AUTH_REALM", ""), |
|
"name": name, |
|
"realm": realm, |
|
"token": token, |
|
} |
|
except binascii.Error: |
|
return 400 |
|
|
|
response = requests.post( |
|
"{OTP_SERVER}{OTP_VERIFY_ENDPOINT}".format( |
|
OTP_SERVER=config("OTP_SERVER", ""), |
|
OTP_VERIFY_ENDPOINT=config("OTP_VERIFY_ENDPOINT", "verify/"), |
|
), |
|
data=data, |
|
) |
|
return response.status_code
|
|
|