programmazione:python:bottle:semplice_autenticazione_con_i_cookie
Semplice autenticazione basata su cookie in Bottle (Python)
Autore: Fabio Di Matteo
Ultima revisione: 10/05/2024 - 17:47
Come da titolo una semplice autenticazione basata sui cookie. Se si desidera un'autenticazione basata sulle sessioni dare uno sguardo all'articolo autenticazione_utenti_bottle_e_beaker
L'utilizzo della funzione principale checkLogin() è alquanto semplice:
if (not checkLogin()): print("Non autorizzato") else: print("Benvenuto")
Di seguito il codice completo.
login.py
from bottle import Bottle,route, run, template, static_file, request,redirect, response,get, post import hashlib users=[ {"user":"fabio","password":"a53bd0415947807bcb95ceec535820ee","type":"0"}, {"user":"francesco","password":"0581938f0767a65b373cea80e905c25f","type":"0"} ] COOKIESECRET="38f0767a65b373cea" COOKIE_user="usr-py" COOKIE_pass="pass-py" def checkLogin(): username= request.get_cookie(COOKIE_user, secret=COOKIESECRET) password= request.get_cookie(COOKIE_pass, secret=COOKIESECRET) ret=False for i in range(0,len(users)): if (username ==users[i]["user"] and password == users[i]["password"] ): ret=True return ret def dologin(): username = request.forms.get('username') password = request.forms.get('password') password=hashlib.md5(password.encode("utf-8")).hexdigest() print("Login: %s/%s" % (username, password)) response.set_cookie(COOKIE_user, username , secret=COOKIESECRET) response.set_cookie(COOKIE_pass, password, secret=COOKIESECRET) redirect("/") def loginform(): return template('login') def logout(): response.set_cookie(COOKIE_user, "") response.set_cookie(COOKIE_pass,"") redirect("/")
main.py
#!/usr/bin/python3 import os from bottle import Bottle,route, run, template, static_file, request,redirect, response,get, post from login import * global app app=Bottle() PORT=8080 def start_server(): run(app , host='0.0.0.0', port=PORT, reloader=True, debug=True) @app.route("/") def home(): if (not checkLogin()): print("Non autorizzato") redirect("/loginform") else: print("Benvenuto") return "<p>Benvenuto</p>" def setup_routing(app): app.route('/logout', ['GET', 'POST'], logout) app.route('/dologin', ['GET', 'POST'], dologin) app.route('/loginform', ['GET', 'POST'], loginform) setup_routing(app) start_server()
programmazione/python/bottle/semplice_autenticazione_con_i_cookie.txt · Ultima modifica: 08/05/2025 10:02 da 127.0.0.1