Cookies
Wir verwenden Cookies, um zu verstehen, wie diese Website genutzt wird. Sie können sie akzeptieren oder ablehnen. Details finden Sie in unserer Cookie-Richtlinie.
TreatmentConsultant prüft einen Lizenzschlüssel lokal im Browser: Signatur, Ablaufdatum und Domain werden offline geprüft, eine Serverkomponente ist nicht nötig. Fehlt der Schlüssel, ist er ungültig, abgelaufen oder für die aktuelle Domain nicht gültig, blendet das Widget ein Wasserzeichen ein. Der Assistent darunter bleibt in jedem Fall voll bedienbar. Das Wasserzeichen ist rein optisch, ein Sonderfall bei der Lizenzierung unterbricht also nie den eigentlichen Buchungsablauf für echte Besucher.
Zusätzlich zu dieser lokalen Prüfung führt das Widget eine zwischengespeicherte Online-Prüfung nach bestem Bemühen gegen die Lizenz-API von GuideMyHair durch, einmal alle 24 Stunden pro Lizenzschlüssel statt bei jedem Seitenaufruf. So wird eine Lizenz erkannt, die serverseitig gekündigt wurde oder abgelaufen ist, obwohl ihr Token noch gültig signiert und nicht abgelaufen ist. Diese Prüfung schlägt offen fehl: Ein Netzwerkfehler oder ein nicht erreichbarer GuideMyHair-Server widerruft nie eine lokal gültige Lizenz, das tut nur eine ausdrückliche Antwort „inaktiv“. Die Website Ihrer Kundschaft hängt also nie von unserer Verfügbarkeit ab.
Sehen Sie es mit einem echten Lizenzschlüssel auf unserer Live-Demo-Seite in Aktion.
Kaufen Sie einen Tarif auf der Preisseite, und Ihr Lizenzschlüssel wird Ihnen automatisch per E-Mail zugeschickt. Es handelt sich um ein signiertes Token. Behandeln Sie es wie jeden anderen API-Schlüssel (nicht in ein öffentliches Repository committen), aber Sie können es bedenkenlos in Ihrem clientseitigen Bundle ausliefern, denn es weist nur die Berechtigung nach und gewährt keinen Zugriff auf sensible Daten.
Übergeben Sie ihn als Prop an eine einzelne Instanz oder einmalig über das Plugin für alle Instanzen in Ihrer App. Sind beide gesetzt, hat die Prop immer Vorrang vor dem Schlüssel des Plugins.
<TreatmentConsultant license-key="eyJhbGciOi..." />// app/plugins/hair-treatments.ts
import { createHairTreatments } from "srcdev-hair-treatments"
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(createHairTreatments({ licenseKey: "eyJhbGciOi..." }))
})Jede Lizenz ist an eine oder mehrere Domains gebunden, die in Ihrem Konto hinterlegt sind. Der Hostname der aktuellen Seite wird mit dieser Liste abgeglichen:
localhost und 127.0.0.1 sind immer erlaubt, für die lokale Entwicklung brauchen Sie also nie einen echten Schlüssel.example.com) deckt auch ihre www.-Variante ab und umgekehrt. Sie müssen nicht beide eintragen.*.example.com) deckt jede Subdomain dieser Domain ab, also staging.example.com, preview.example.com und so weiter, aber nicht die Domain selbst. Kombinieren Sie ihn mit einem einfachen Eintrag example.com, wenn Sie beides brauchen.*.vercel.app, *.netlify.app und ähnliche werden niemals abgeglichen, bei keiner Lizenz und unter keinen Umständen. Diese Domain gehört nicht Ihnen und kann daher nicht lizenziert werden: Sie wird mit allen anderen Apps auf derselben Plattform geteilt, sie zuzulassen hieße also, alle zuzulassen. Rechnen Sie bei Vorschau-Deployments mit dem Wasserzeichen. Wenn Sie eine Vorschau ohne Wasserzeichen teilen möchten, richten Sie stattdessen eine Subdomain Ihrer eigenen Domain auf das Deployment.Sie möchten Domains einer bestehenden Lizenz hinzufügen oder ändern, z. B. eine Staging-Subdomain? Kontaktieren Sie uns.
Wenn Ihre Website eine connect-src-Direktive setzt, fügen Sie https://guidemyhair.com hinzu. Das ist die oben beschriebene Online-Prüfung. Eine blockierte Anfrage sieht für das Widget genauso aus wie ein Netzwerkfehler und schlägt daher still offen fehl, statt sichtbar einen Fehler anzuzeigen. In beiden Fällen erhalten Sie eine spezifische Konsolenwarnung („blocked by Content-Security-Policy“ bzw. eine allgemeine Meldung über einen Netzwerkfehler). Prüfen Sie also die Browserkonsole, wenn Sie unsicher sind, was zutrifft.
| Grund | Angezeigt, wenn |
|---|---|
| Kein Lizenzschlüssel angegeben | weder die Prop noch das Plugin einen Schlüssel gesetzt hat |
| Lizenzschlüssel konnte nicht verifiziert werden | der Schlüssel fehlerhaft ist oder nicht von GuideMyHair signiert wurde |
| Diese Lizenz ist abgelaufen | das Ablaufdatum der Lizenz überschritten ist (nur bei Abonnements, Lifetime-Lizenzen laufen nie ab) |
| Diese Lizenz ist für diese Domain nicht gültig | der aktuelle Hostname nicht von den Domains der Lizenz abgedeckt ist. Siehe Domainabgleich oben |
| Diese Lizenz ist nicht mehr aktiv | die tägliche Online-Prüfung eine ausdrückliche Antwort „inaktiv“ erhalten hat, weil die Lizenz serverseitig gekündigt wurde oder abgelaufen ist |