feat: Backend mit OIDC-Anmeldung, Apps und Einstellungen im Server
Aus der statischen Seite wird ein Go-Binary mit eingebetteter Oberfläche. Grund: Apps über .env zu pflegen wurde unübersichtlich, und kosmetische Einstellungen sollen auf jedem Gerät gleich sein. - Anmeldung über den eigenen OIDC-Anbieter (PocketID), mit PKCE. Ohne Anmeldung gibt es nichts zu sehen – auch keine App-Liste. - Sitzung als signiertes Cookie ohne Gegenstück im Server; Schreibzugriffe zusätzlich über ein lesbares CSRF-Cookie abgesichert - Apps werden in der Oberfläche angelegt und bearbeitet, nicht mehr in der .env. Der Server prüft jeden Eintrag und meldet zurück, was er behält. - Einstellungen liegen je Nutzer im Server; localStorage ist nur noch der Vorschuss, damit die Röhre beim Laden nicht in der falschen Farbe blitzt - die Leiste holt die App-Liste aus /api/apps – freigegeben sind allein die Ursprünge, die selbst als App eingetragen sind - Tests fahren einen echten OIDC-Anbieter hoch und gehen den Anmeldeweg einmal ganz durch Ohne HONEYOS_OIDC_ISSUER läuft alles offen – für die Entwicklung, mit deutlicher Warnung beim Start. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
84cc5d619e
commit
283f9a1850
20 files changed
+1831
-438
No files matched your search
+12
-1
@@ -17,6 +17,15 @@
|
||||
<p class="boot-hint">[ beliebige Taste = überspringen ]</p>
|
||||
</div>
|
||||
|
||||
<!-- ── Anmeldung ──────────────────────────────────────────────────── -->
|
||||
<div class="login" id="login" hidden>
|
||||
<pre class="boot-log" id="loginLog"></pre>
|
||||
<div class="login-box">
|
||||
<button class="login-btn" id="btnLogin">▸ <span id="loginLabel">Anmelden</span></button>
|
||||
<p class="login-note" id="loginNote"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ── Desktop ────────────────────────────────────────────────────── -->
|
||||
<div class="desktop" id="desktop" hidden>
|
||||
<!-- Menüleiste: dieselbe Anatomie wie honeybar.js in den Apps -->
|
||||
@@ -26,9 +35,11 @@
|
||||
</button>
|
||||
<nav class="mb-apps" id="mbApps" aria-label="Anwendungen"></nav>
|
||||
<div class="mb-right">
|
||||
<span class="mb-user" id="mbUser">marc</span>
|
||||
<img class="mb-avatar" id="mbAvatar" alt="" hidden />
|
||||
<span class="mb-user" id="mbUser"> </span>
|
||||
<span class="mb-clock" id="clock">--:--</span>
|
||||
<button class="mb-btn" id="btnSettings" title="Einstellungen (S)">⚙</button>
|
||||
<button class="mb-btn" id="btnLogout" title="Abmelden" hidden>⏻</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
Reference in new issue
Block a user