New endpoint: /httpauth + /httpauth/logout
This commit is contained in:
parent
840e46e268
commit
93af46dd34
30
app.py
30
app.py
|
@ -8,14 +8,25 @@ import time
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
from flask import Flask, request, Response, render_template, jsonify
|
from flask import Flask, request, Response, render_template, jsonify
|
||||||
|
from flask_httpauth import HTTPBasicAuth
|
||||||
from werkzeug.routing import Rule
|
from werkzeug.routing import Rule
|
||||||
|
from werkzeug.security import generate_password_hash, check_password_hash
|
||||||
|
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
app.url_map.add(Rule("/request", endpoint="request"))
|
app.url_map.add(Rule("/request", endpoint="request"))
|
||||||
|
|
||||||
|
|
||||||
logging.basicConfig(format="%(message)s", level="INFO")
|
logging.basicConfig(format="%(message)s", level="INFO")
|
||||||
black_logger = logging.getLogger("blank")
|
black_logger = logging.getLogger("blank")
|
||||||
|
auth = HTTPBasicAuth()
|
||||||
|
|
||||||
|
users = {
|
||||||
|
"foo": generate_password_hash("bar"),
|
||||||
|
}
|
||||||
|
|
||||||
|
@auth.verify_password
|
||||||
|
def verify_password(username, password):
|
||||||
|
if username in users and \
|
||||||
|
check_password_hash(users.get(username), password):
|
||||||
|
return username
|
||||||
|
|
||||||
|
|
||||||
@app.route("/")
|
@app.route("/")
|
||||||
|
@ -268,5 +279,20 @@ def items_view():
|
||||||
|
|
||||||
return jsonify(response_body)
|
return jsonify(response_body)
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/httpauth")
|
||||||
|
@auth.login_required
|
||||||
|
def http_auth_route():
|
||||||
|
"""
|
||||||
|
Route with HTTP Auth enabled
|
||||||
|
"""
|
||||||
|
return jsonify({"logged_in": True, "logout": "/httpauth/logout"})
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/httpauth/logout")
|
||||||
|
def http_auth_logout_view():
|
||||||
|
return "Logged out", 401
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
app.run(debug=True, port=8080, host="0.0.0.0")
|
app.run(debug=True, port=8080, host="0.0.0.0")
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
flask
|
flask
|
||||||
requests
|
Flask-HTTPAuth
|
||||||
|
requests
|
Loading…
Reference in New Issue