Login über beide Domains reparieren, Hub-Link auf der Bot-Seite korrigieren
Deploy / check (push) Has been cancelled
Deploy / deploy (push) Has been cancelled

Zwei Fehler aus dem ersten Praxistest:

1. "Ungültiger OAuth-State" beim Anmelden auf dem Hub. Der Login startete
   auf hub.d4rkst3r.de, aber die Rücksprung-Adresse für Discord war fest
   auf die öffentliche URL gesetzt — Discord schickte also zur Bot-Domain
   zurück. Das Schutz-Cookie gegen Sitzungsübernahme gilt aber nur für die
   Domain, auf der es gesetzt wurde, und war dort nicht lesbar.
   Jetzt bleibt der ganze Ablauf auf der Domain, von der er gestartet ist.
   Damit entfällt auch der Umweg über ein zusätzliches Cookie, das sich die
   Ursprungsseite merken sollte.

2. Der Link "zum Community-Hub" auf der Bot-Seite zeigte auf die Bot-Seite
   selbst — er benutzte die alte öffentliche URL statt der Hub-Adresse.
   /api/legal liefert jetzt beide Adressen getrennt; die Verweise zwischen
   den Seiten erscheinen nur, wenn die Domains wirklich verschieden sind.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-31 15:29:31 +02:00
co-authored by Claude Fable 5
parent 079c75b184
commit 478e47684a
4 changed files with 32 additions and 32 deletions
+1 -1
View File
@@ -23,7 +23,7 @@ export default function BotApp() {
apiGet('/api/me')
.then((data) => setMe({ scopes: [], ...data, loading: false }))
.catch(() => setMe({ user: null, admin: false, scopes: [], loading: false }));
apiGet('/api/legal').then((d) => setHub(d.publicUrl)).catch(() => {});
apiGet('/api/legal').then((d) => setHub(d.split ? d.hubUrl : null)).catch(() => {});
}, []);
useEffect(() => {
+4 -3
View File
@@ -25,7 +25,8 @@ export default function BotLanding() {
const [hub, setHub] = useState(null);
useEffect(() => {
apiGet('/api/legal').then((d) => setHub(d)).catch(() => {});
// Nur verlinken, wenn der Hub wirklich woanders liegt
apiGet('/api/legal').then((d) => setHub(d.split ? d.hubUrl : null)).catch(() => {});
apiGet('/api/serverstats').then(setStatus).catch(() => {});
window.scrollTo(0, 0);
}, []);
@@ -106,11 +107,11 @@ export default function BotLanding() {
</div>
</div>
{hub?.publicUrl && (
{hub && (
<p className="notice" style={{ marginTop: '2rem' }}>
Der Bot läuft für die D4RKST3R-Community
{status?.members ? ` mit ${status.members} Mitgliedern` : ''}
{' '}<a href={hub.publicUrl} style={{ textDecoration: 'underline' }}>zum Community-Hub</a>.
{' '}<a href={hub} style={{ textDecoration: 'underline' }}>zum Community-Hub</a>.
</p>
)}
</section>