Ich weiß, die Antwort kommt spät, aber ich stolpere erst jetzt über dieselbe Frage.
Wir nutzen die REST API von Webling recht intensiv und haben darüber schon diverse Zusatz-Features realisiert, z.B. eine Anzeige auf unserer Webseite, wann wer unserer Mitglieder mit der Gemeinschaftsarbeit dran ist, dazu diverse Vorstands-"Utilities" (z.B. ein Bewerber-Management und das automatische ausfüllen von Aufnahmeverträgen samt Versicherungs-Antrag, etc.), dazu Anbindung an ein externes Rechnungswesen (das auch Gutschriften unterstützt). Das ist zu 99% in PHP und Javascript realisiert, auf einem externen Server. Ich denke, wir fallen so in die von @ChristianM aufgerufene Gruppe von "erfahrenen Web-Programmierern mit Webling-Erfahrung".
Wir würden auch gerne ein paar eigene Inhalte in das Mitgliederportal integrieren, die nur das eingeloggte Mitglied sehen kann, niemand sonst.
Allerdings können wir (und ihr) die üblichen Credentials (Webling username/password) dafür nicht nehmen, weil
a) diese nicht als {{Member Values}} im Webling-Editor genutzt werden und somit auch keiner iframe-URL übergeben werden können und
b) wir diese von extern auch nicht prüfen können. Dazu war ich mit dem Support schon in Kontakt. Es gibt zwar technisch IMMER die Möglichkeit, den Login-Vorgang zu simulieren (beispielsweise Chrome headless laufen lassen und das Eingeben simulieren), aber das ist undokumentiert und kann sich ändern ... und ist ohne a) ohnehin keine Option.
Also sehe ich aktuell nur den Weg über ein "secret token", z.B. wie folgt:
- Man legt ein Mitgliederfeld im backend an, z.B. "accessSecret" und setzt das (natürlich automatisiert) für jedes Mitglied auf einen langen, "gesalzenen" Hash der Mitgliedsdaten. Oder auch ein rand(2256). Zufallszahlen taugen hier, weil wir extern keine credentials prüfen, sondern nur den match.
- dieses übergibt man im iframe z.B. so
<iframe src="https://www.mein-server.xyz/mein-script.php?secret={{accessSecret}}"></iframe>
- das externe Script findet dann per REST API (nutze die Filter-Funktion) heraus, zu welchem Mitglied dieses secret gehört ... und erzeugt die entsprechende Response.
Diese Response wird also immer nur dann angezeigt, wenn im Mitgliederportal ein Mitglied angemeldet ist und daher exakt das richtige und zum Mitglied passende accessSecret übergeben wird, Natürlich ist die Seite https://www.mein-server.xyz/mein-script.php
selbst öffentlich, aber 2256 ist schon eine sehr große Zahl, so dass die anderen 99.9999999999999...99999% (insg. knapp 80 Neunen) möglichen Versuche von Angreifern auf die URL https://www.mein-server.xyz/mein-script.php?secret={{angriffsVersuch}}
ins Leere gehen. Die Sicherheit entspricht bei 256 bit hash/secret Länge dem, was heute gegen Brute-Force Login Attacks als ausreichend gilt und wäre damit Stand der Technik. Wem das nicht reicht, kann ja 512 oder 1024 nehmen.
Natürlich gehe ich davon aus, dass httpS genutzt wird (mit "s") für secure, dann ist alles verschlüsselt, inkl. des accessSecrets.
Wer sich zusätzlich davor schützen will, dass die iframe-URL kein zweites Mal genutzt werden kann, ändert einfach (im selben externen Script) jedes Mal den Wert des accessSecrets per REST API (salt oder rand). So kann auch der Nutzer, selbst wenn er wollte, die iframe-URL nicht wiederbenutzen und auch (absichtlich oder aus Versehen) keinem Dritten geben.
Ach so: das accessSecret nicht als "Very-Long-Integer" speichern (ich weiß nicht mal, ob Webling 2256 kann) sondern als base64-String, dann wird die iframe-URL auch nicht so lang.
P.S.: Solche Erweiterungen erfordern PHP/JS/REST/security Know How. Wenn du (als "Verantwortliche(r)") das nicht selbst verstehst/kannst, dann finde in deinem Verein so einen "Typen" oder auch "Nerd" und setze sie oder ihn darauf an. In unserem Verein haben wir so einen gefunden ... mich 😃