Start working on authentication
This commit is contained in:
parent
d0de210c4f
commit
9e2a7d338d
1 changed files with 32 additions and 0 deletions
32
server.py
32
server.py
|
@ -1,3 +1,4 @@
|
|||
import http.cookies
|
||||
import http.server
|
||||
import urllib.parse
|
||||
|
||||
|
@ -11,9 +12,23 @@ class HTTPRequestHandler(http.server.BaseHTTPRequestHandler):
|
|||
encoded = html.encode('utf-8')
|
||||
length = len(encoded)
|
||||
|
||||
# TODO: Make this more sensical
|
||||
sent_cookies = http.cookies.SimpleCookie()
|
||||
sent_cookies['buranun_session'] = 'dihutenosa'
|
||||
sent_cookies['buranun_session']['domain'] = 'ahti-saarelainen.zgrep.org'
|
||||
sent_cookies['buranun_session']['path'] = '/board'
|
||||
sent_cookies['buranun_session']['max-age'] = 60
|
||||
sent_cookies['buranun_session']['secure'] = True
|
||||
sent_cookies['buranun_session']['httponly'] = True
|
||||
|
||||
self.send_response(status_code)
|
||||
self.send_header('Content-Type', 'text/html; charset=utf-8')
|
||||
self.send_header('Content-Length', length)
|
||||
|
||||
# Since http.cookies doesn't play nicely with http.server we need to do this manually
|
||||
self.flush_headers()
|
||||
self.wfile.write(sent_cookies.output().encode('utf-8') + b'\r\n')
|
||||
|
||||
self.end_headers()
|
||||
|
||||
self.wfile.write(encoded)
|
||||
|
@ -23,6 +38,23 @@ class HTTPRequestHandler(http.server.BaseHTTPRequestHandler):
|
|||
self.__send_html(html, status_code = 404)
|
||||
|
||||
def do_GET(self):
|
||||
# TODO: Do something with the session
|
||||
cookies_string = self.headers['cookie']
|
||||
|
||||
if cookies_string is not None:
|
||||
received_cookies = http.cookies.SimpleCookie()
|
||||
|
||||
try:
|
||||
received_cookies.load(cookies_string)
|
||||
except http.cookies.CookieError:
|
||||
print('malformed cookies')
|
||||
|
||||
if 'buranun_session' in received_cookies:
|
||||
print(received_cookies['buranun_session'].value)
|
||||
|
||||
else:
|
||||
print('no cookies')
|
||||
|
||||
path = urllib.parse.unquote(self.path)
|
||||
|
||||
path_components = [component for component in path.split('/') if component != '']
|
||||
|
|
Loading…
Reference in a new issue