73 lines
2.3 KiB
Python
73 lines
2.3 KiB
Python
from http.server import BaseHTTPRequestHandler, HTTPServer
|
|
from socket import *
|
|
import requests
|
|
from sendmail import mail
|
|
from verification import otp
|
|
|
|
class MyRequestHandler(BaseHTTPRequestHandler):
|
|
def do_GET(self):
|
|
self.send_response(200)
|
|
self.send_header("Content-type", "text/html")
|
|
if self.path == '/':
|
|
self.path = '/pages/index.html'
|
|
try:
|
|
file_to_open = open(self.path[1:]).read()
|
|
self.send_response(200)
|
|
except:
|
|
file_to_open = "File Not Found"
|
|
self.send_response(404)
|
|
self.end_headers()
|
|
self.wfile.write(bytes(file_to_open, 'utf-8'))
|
|
|
|
def do_POST(self):
|
|
|
|
# getting the content length from the header information and then rfile is the POST request, with content_length being the number of bytes it needs to grab (optional for if you want to grab less bytes for whatever reason)
|
|
content_length = int(self.headers['Content-Length'])
|
|
data_input = bytes.decode(self.rfile.read(content_length))
|
|
|
|
if (data_input.startswith("email=")):
|
|
data_str = str(data_input.replace('%40', '@'))
|
|
formatted = data_str.replace('email=', '')
|
|
mail.send(formatted, mail.gen_code(formatted))
|
|
self.path = '/pages/otp.html'
|
|
try:
|
|
file_to_open = open(self.path[1:]).read()
|
|
self.send_response(200)
|
|
except:
|
|
file_to_open = "File Not Found"
|
|
self.send_response(404)
|
|
self.end_headers()
|
|
self.wfile.write(bytes(file_to_open, 'utf-8'))
|
|
if (data_input.startswith("verifEmail=")):
|
|
data_str = str(data_input.replace('%40', '@'))
|
|
|
|
# get email
|
|
formatted_verifemail = data_str.replace('verifEmail=', '')
|
|
formatted_verifnums = formatted_verifemail.replace('&verifOtp=', '')
|
|
email = formatted_verifnums[:-4]
|
|
|
|
#get otp code
|
|
otp_code = data_str[-4:]
|
|
|
|
print(email)
|
|
print(otp)
|
|
if (otp.authenticate(email, otp_code)):
|
|
print("OK!")
|
|
else:
|
|
print("BAD!")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Handler = MyRequestHandler
|
|
|
|
|
|
hostName = "localhost"
|
|
serverPort = 8080
|
|
|
|
server = HTTPServer((hostName, serverPort), Handler)
|
|
|
|
server.serve_forever()
|