-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathauth-server-example.py
More file actions
56 lines (47 loc) · 1.54 KB
/
Copy pathauth-server-example.py
File metadata and controls
56 lines (47 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import http.server
import socketserver
import json
from dataclasses import dataclass
@dataclass
class User:
id: str
email: str
password: str
first_name: str
last_name: str
gender: str
users = [
User('1', 'johndoe@example.com', 'blackcat', 'John', 'Doe', 'm'),
User('2', 'mikejohnson@example.com', 'redcar', 'Mike', 'Johnson', 'm'),
User('3', 'rosejohns@example.com', 'whitepillow', 'Rose', 'Johns', 'f'),
]
class Handler(http.server.SimpleHTTPRequestHandler):
def do_POST(self):
body = self.rfile.read(int(self.headers['Content-Length']))
body = json.loads(body)
response = None
for user in users:
if body['username'] == user.email and body[
'password'] == user.password:
response = {
'userId': user.id,
'firstName': user.first_name,
'lastName': user.last_name,
'email': user.email,
'gender': user.gender
}
break
if response:
self.send_response(200)
self.send_header('Content-Type', 'application/json')
body = json.dumps(response).encode()
self.send_header('Content-Length', len(body))
self.end_headers()
self.wfile.write(body)
else:
self.send_response(401)
self.end_headers()
return
httpd = socketserver.TCPServer(('', 9090), Handler)
print('Started server on port 9090')
httpd.serve_forever()