32 lines
611 B
Python
32 lines
611 B
Python
from hashlib import sha1
|
|
from microdot import Microdot
|
|
from microdot.auth import BasicAuth
|
|
|
|
|
|
def create_hash(password):
|
|
return sha1(password).hexdigest()
|
|
|
|
|
|
USERS = {
|
|
'susan': create_hash(b'hello'),
|
|
'david': create_hash(b'bye'),
|
|
}
|
|
app = Microdot()
|
|
auth = BasicAuth()
|
|
|
|
|
|
@auth.authenticate
|
|
async def check_credentials(request, username, password):
|
|
if username in USERS and USERS[username] == create_hash(password.encode()):
|
|
return username
|
|
|
|
|
|
@app.route('/')
|
|
@auth
|
|
async def index(request):
|
|
return f'Hello, {request.g.current_user}!'
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app.run(debug=True)
|