32 lines
855 B
Python
32 lines
855 B
Python
from microdot import Microdot
|
|
from microdot.auth import BasicAuth
|
|
from pbkdf2 import generate_password_hash, check_password_hash
|
|
|
|
|
|
# this example provides an implementation of the generate_password_hash and
|
|
# check_password_hash functions that can be used in MicroPython. On CPython
|
|
# there are many other options for password hashisng so there is no need to use
|
|
# this custom solution.
|
|
USERS = {
|
|
'susan': generate_password_hash('hello'),
|
|
'david': generate_password_hash('bye'),
|
|
}
|
|
app = Microdot()
|
|
auth = BasicAuth()
|
|
|
|
|
|
@auth.authenticate
|
|
async def check_credentials(request, username, password):
|
|
if username in USERS and check_password_hash(USERS[username], password):
|
|
return username
|
|
|
|
|
|
@app.route('/')
|
|
@auth
|
|
async def index(request):
|
|
return f'Hello, {request.g.current_user}!'
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app.run(debug=True)
|