diff --git a/server/app.py b/server/app.py index 5a8327b..d032484 100644 --- a/server/app.py +++ b/server/app.py @@ -79,13 +79,24 @@ def login_user(): try: user = auth_manager.authenticate_user(username, password) if user: - access_token = create_access_token(identity=user['id']) + access_token = create_access_token(identity=str(user['id'])) return jsonify({"access_token": access_token}), 200 else: return jsonify({"error": "Invalid username or password"}), 401 except Exception as e: print(traceback.format_exc()) return jsonify({"error": f"An unexpected error occurred: {str(e)}"}), 500 + +@app.route("/profile", methods=["GET"]) +@jwt_required() +def profile(): + current_user = get_jwt_identity() + + return jsonify( + message="Access granted", + user=auth_manager.get_user_by_id(current_user) + ), 200 + @app.route('/upload', methods=['POST']) def upload_data(): diff --git a/server/auth.py b/server/auth.py index a1728f7..9d62512 100644 --- a/server/auth.py +++ b/server/auth.py @@ -21,4 +21,9 @@ class AuthManager: user = self.db.get_user_by_username(username) if user and self.bcrypt.check_password_hash(user['password_hash'], password): return user - return None \ No newline at end of file + return None + + def get_user_by_id(self, user_id): + query = "SELECT id, username, email FROM users WHERE id = %s" + result = self.db.execute(query, (user_id,), fetch=True) + return result[0] if result else None \ No newline at end of file