· 2 years ago · Sep 15, 2023, 10:50 AM
1from flask import Flask, jsonify, request
2import jwt
3
4app = Flask(__name__)
5
6LOCAL_DB = {
7 "users":{"admin":"admin"},
8}
9
10JWT_KEY = "secret_key"
11
12@app.route("/api/login", methods=['POST'])
13def login():
14 user = request.form.get("user")
15 password = request.form.get("password")
16 print(user)
17 print(password)
18 #se l'utente esiste e la password inserita corrisponde a quella presente nel DB, genero e restituisco il token JWT
19 if user in LOCAL_DB["users"].keys() and password == LOCAL_DB["users"].get(user, "null"):
20 encoded_jwt = jwt.encode({"admin": "admin"}, JWT_KEY, algorithm="HS256")
21 print(f"JWT TOKEN: {encoded_jwt}") #test
22 return jsonify({"Token": encoded_jwt}), 200
23 else:
24 return jsonify({"status_code": 401}), 401
25
26
27@app.route("/api/session", methods=['GET'])
28def session():
29 jwt_token = request.headers["Authorization"]
30 if jwt_token == f"Bearer {jwt.encode({'admin': 'admin'}, JWT_KEY, algorithm='HS256')}":
31 return jsonify({"ok": True}), 200
32 else:
33 return jsonify({"ok": False}), 401
34