43 lines
1.3 KiB
Python
Executable File
43 lines
1.3 KiB
Python
Executable File
from flask import request, jsonify
|
|
from app.auth import auth
|
|
from app import db
|
|
from app.classes.auth import Auth_User
|
|
|
|
|
|
@auth.route("/whoami", methods=["GET"])
|
|
def check_session():
|
|
"""
|
|
Checks auth token to ensure user is authenticated
|
|
"""
|
|
|
|
api_key = request.headers.get('Authorization')
|
|
if not api_key:
|
|
return jsonify({"error": "True"}), 200
|
|
else:
|
|
api_key = api_key.replace('bearer ', '', 1)
|
|
api_key = api_key.replace('"', '')
|
|
user_exists = db.session\
|
|
.query(Auth_User)\
|
|
.filter(Auth_User.api_key == api_key)\
|
|
.first()
|
|
if not user_exists:
|
|
return jsonify({"error": True}), 200
|
|
else:
|
|
user = db.session\
|
|
.query(Auth_User)\
|
|
.filter(Auth_User.api_key == api_key)\
|
|
.first()
|
|
|
|
return jsonify({
|
|
"ok": True,
|
|
'user': {
|
|
'user_name': user.display_name,
|
|
'user_email': user.email,
|
|
'user_admin': user.admin_role,
|
|
'token': user.api_key,
|
|
'confirmed': user.confirmed
|
|
},
|
|
'token': user.api_key
|
|
}), 200
|
|
|