import binascii import requests from decouple import config from pyotp import TOTP def check_otp(name, realm, seed): try: data = { "auth_name": config('AUTH_NAME', ''), "auth_token": TOTP(config('AUTH_SEED', '')).now(), "auth_realm": config('AUTH_REALM', ''), "name": name, "realm": realm, "token": TOTP(seed).now() } 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