📱 Webviews
Partner Checklist

Partner-Checkliste

Was wir von euch brauchen, bevor Lynes eure gehostete Webview einrichtet.

Technische Details für Entwickler: Quick Start


Was Lynes mit Keycloak macht (und was nicht)

Das macht der Partner

  • Nutzer in der eigenen App bei Keycloak anmelden (Login baut ihr — z. B. OpenID Connect / Authorization Code)
  • Access Token von Keycloak holen
  • Webview öffnen mit: Authorization: Bearer <Access Token>

Das macht Lynes

  1. Access Token entgegennehmen, das die App an die Webview übergibt
  2. Aus dem Token die Issuer-URL (iss) auslesen — z. B. https://auth.partner.de/realms/partner
  3. Die öffentlichen Signatur-Schlüssel von Keycloak laden:
    {issuer}/protocol/openid-connect/certs
  4. Prüfen, ob das Token echt und gültig von eurem Keycloak stammt (Signatur RS256)
  5. Daraus eine eigene Webview-Session erzeugen (neues JWT, ca. 1 Stunde gültig) — damit arbeitet die Webview intern weiter

Die Nutzer-ID in der Webview ist der Wert sub aus dem Keycloak-Token. Der muss mit den User-IDs in Lynes Loyalty übereinstimmen.

Das macht Lynes nicht

  • Kein Keycloak-Login-Screen in der Webview
  • Kein Keycloak-Client-Secret bei uns
  • Keine Redirect-URLs / OAuth-Flows bei Lynes einrichten
  • Kein Refresh der Keycloak-Session durch uns — dafür ist die Partner-App zuständig

Checkliste

Keycloak

  • Issuer-URL Staging (steht im Token als iss, z. B. https://auth…/realms/…)
  • Issuer-URL Produktion
  • Öffentliche Schlüssel erreichbar: {issuer}/protocol/openid-connect/certs
  • Access Token (nicht nur Refresh Token) wird an die Webview übergeben
  • Nutzer-ID im Token: sub = dieselbe ID wie in Lynes Loyalty
  • Beispiel-Access-Token zum Testen (Staging)
  • Kurz Info: welchen App-Login ihr nutzt (z. B. Authorization Code + PKCE) — nur zur Einordnung

Native App

  • URL Webview schließen: z. B. myapp://loyalty/back
  • URL externer Link: z. B. myapp://loyalty/external?url=…
  • Standard-Startseite (z. B. Overview, Leaderboard)

Die App fängt diese URLs in der WebView ab (Navigation wird zur Custom-URL umgeleitet). Bundle ID oder Eintrag im App-Manifest brauchen wir nicht — das regelt der Partner in der eigenen App.

Branding

  • Produktname (statt z. B. „Mein Bonus“)
  • Punkte-Bezeichnung (statt z. B. „Bonuspunkte“)
  • Farben (Hex, Hell + Dunkel)
  • Logo (SVG oder PNG)
  • Texte Deutsch (und Englisch, falls nötig)

Das liefert Lynes

  • Webview-URL (Staging + Live)
  • Callback-URLs wie oben angegeben
  • Token-Prüfung + Webview-Session
  • Gebrandete Webview