| |
| """ |
| OAuth Server on Different Port |
| """ |
|
|
| import os |
| import socket |
| from flask import Flask, jsonify |
|
|
|
|
| def is_port_available(port): |
| """Check if port is available""" |
| try: |
| with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: |
| s.bind(('127.0.0.1', port)) |
| s.close() |
| return True |
| except: |
| return False |
|
|
| |
| TEST_PORT = 5058 |
| if not is_port_available(TEST_PORT): |
| TEST_PORT = 8000 |
| if not is_port_available(TEST_PORT): |
| TEST_PORT = 5060 |
| if not is_port_available(TEST_PORT): |
| TEST_PORT = 5061 |
|
|
| print(f"🔧 Port 5058 available: {is_port_available(5058)}") |
| print(f"🔧 Using port: {TEST_PORT}") |
|
|
| |
| GITHUB_CLIENT_ID = os.getenv('GITHUB_CLIENT_ID') |
|
|
| app = Flask(__name__) |
|
|
| @app.route("/") |
| def index(): |
| return jsonify({ |
| "message": "OAuth Server Running", |
| "port": TEST_PORT, |
| "github_client_id": GITHUB_CLIENT_ID[:10] if GITHUB_CLIENT_ID else None, |
| "status": "testing" |
| }) |
|
|
| @app.route("/healthz") |
| def health(): |
| return jsonify({ |
| "status": "ok", |
| "message": "OAuth server is working", |
| "port": TEST_PORT |
| }) |
|
|
| @app.route("/api/auth/github/status") |
| def github_status(): |
| return jsonify({ |
| "ok": True, |
| "service": "github", |
| "status": "connected" if GITHUB_CLIENT_ID else "needs_credentials", |
| "credentials": "real" if GITHUB_CLIENT_ID else "placeholder", |
| "client_id": GITHUB_CLIENT_ID, |
| "message": "GitHub OAuth test working" |
| }) |
|
|
| @app.route("/api/auth/github/authorize") |
| def github_authorize(): |
| user_id = request.args.get("user_id", "test_user") |
| |
| if GITHUB_CLIENT_ID: |
| return jsonify({ |
| "ok": True, |
| "service": "github", |
| "user_id": user_id, |
| "credentials": "real", |
| "client_id": GITHUB_CLIENT_ID, |
| "auth_url": f"https://github.com/login/oauth/authorize?client_id={GITHUB_CLIENT_ID}&redirect_uri=http://localhost:{TEST_PORT}/api/auth/github/callback&scope=repo user", |
| "message": "GitHub OAuth working with real credentials" |
| }) |
| else: |
| return jsonify({ |
| "ok": True, |
| "service": "github", |
| "user_id": user_id, |
| "credentials": "placeholder", |
| "message": "GitHub OAuth needs real credentials" |
| }) |
|
|
| if __name__ == "__main__": |
| print("🚀 OAUTH SERVER WITH PORT FIX") |
| print("=" * 50) |
| print(f"🌐 Starting on http://localhost:{TEST_PORT}") |
| print(f"🔧 GitHub Client ID: {'LOADED' if GITHUB_CLIENT_ID else 'MISSING'}") |
| print("=" * 50) |
| |
| try: |
| app.run(host='127.0.0.1', port=TEST_PORT, debug=False) |
| except Exception as e: |
| print(f"❌ Failed to start server: {e}") |
| exit(1) |