Add UniAuth

This commit is contained in:
Edward Betts 2025-11-16 05:30:50 +00:00
parent d25a3a6622
commit 30b4d27c6a
2 changed files with 17 additions and 1 deletions

View file

@ -1,14 +1,17 @@
"""Package initialization for the alt text generator app.""" """Package initialization for the alt text generator app."""
import sys
from pathlib import Path from pathlib import Path
from flask import Flask from flask import Flask
sys.path.append("/home/edward/src/2024/UniAuth") # isort:skip
from .cache import AltTextCache from .cache import AltTextCache
from .config import load_settings from .config import load_settings
from .immich import ImmichClient from .immich import ImmichClient
from .openai_client import AltTextGenerator
from .mastodon import MastodonClient from .mastodon import MastodonClient
from .openai_client import AltTextGenerator
def create_app() -> Flask: def create_app() -> Flask:
@ -26,6 +29,9 @@ def create_app() -> Flask:
secret_key = app.config.get("SECRET_KEY") or "dev-secret-key" secret_key = app.config.get("SECRET_KEY") or "dev-secret-key"
app.config["SECRET_KEY"] = secret_key app.config["SECRET_KEY"] = secret_key
app.config["UNIAUTH_URL"] = "https://edwardbetts.com/UniAuth"
app.config["REQUIRE_AUTH"] = True
app.config["AUTH_CALLBACK_ENDPOINT"] = "main.auth_callback"
instance_dir = Path(app.instance_path) instance_dir = Path(app.instance_path)
instance_dir.mkdir(parents=True, exist_ok=True) instance_dir.mkdir(parents=True, exist_ok=True)

View file

@ -5,6 +5,7 @@ from __future__ import annotations
import base64 import base64
from datetime import datetime from datetime import datetime
import UniAuth.auth
from flask import ( from flask import (
Blueprint, Blueprint,
Response, Response,
@ -105,6 +106,15 @@ def _unique_asset_ids(values: list[str]) -> list[str]:
MAX_MEDIA_ATTACHMENTS = 4 MAX_MEDIA_ATTACHMENTS = 4
bp.before_request(UniAuth.auth.require_authentication)
@bp.route("/callback")
def auth_callback():
"""Process the authentication callback."""
return UniAuth.auth.auth_callback()
@bp.route("/") @bp.route("/")
def index(): def index():
return redirect(url_for("main.compose_select")) return redirect(url_for("main.compose_select"))