New Text Document
New Text Document
steps:
app = Flask(__name__)
---
app = Flask(__name__)
valid_api_keys = {}
def generate_api_key():
return str(uuid.uuid4())
def api_key_required(func):
def wrapper(*args, **kwargs):
api_key = request.headers.get('X-API-Key')
if not api_key or api_key not in valid_api_keys:
return jsonify({"error": "Unauthorized"}), 401
return func(*args, **kwargs)
wrapper.__name__ = func.__name__
return wrapper
@app.route('/generate-key', methods=['POST'])
def generate_key():
new_key = generate_api_key()
valid_api_keys[new_key] = True
return jsonify({"api_key": new_key}), 201
@app.route('/protected', methods=['GET'])
@api_key_required
def protected_route():
return jsonify({"message": "Access granted!"})
if __name__ == '__main__':
app.run(debug=True)
```
---
---