Zum Hauptinhalt springen

API-Schlüssel geheim halten

Den Code eines veröffentlichten Widgets kann jeder lesen. Schreiben Sie deshalb nie einen API-Schlüssel, ein Passwort oder ein Token hinein. Wohin ein Geheimnis gehört, hängt davon ab, wessen Geheimnis es ist.

Ihr eigener Schlüssel: eine Private Eingabe​

Wenn Ihr Widget einen Schlüssel für alle verwendet, etwa Ihr Konto bei einem Wetterdienst, speichern Sie ihn als Private Eingabe. Nur Ihr Widget kann ihn lesen. Niemand kann ihn sehen, auch Sie nicht, sobald er gespeichert ist, und wer Ihr Widget hinzufügt, muss ihn nicht ausfüllen.

  1. Wählen Sie im Widget-Studio Datei > Eingaben.
  2. Öffnen Sie den Tab Private Eingaben und wählen Sie Neues Geheimnis erstellen.
  3. Geben Sie unter Name einen Namen ein, etwa API_KEY, und unter Wert den Wert. Wählen Sie dann Geheimnis hinzufügen.
Der Tab „Private Eingaben“ im Dialog „Eingaben“ mit einem neuen Geheimnis namens API_KEY und seinem Wert sowie einer Schaltfläche „Geheimnis hinzufügen“Der Tab „Private Eingaben“ im Dialog „Eingaben“ mit einem neuen Geheimnis namens API_KEY und seinem Wert sowie einer Schaltfläche „Geheimnis hinzufügen“

Lesen Sie den Schlüssel wie jede andere Eingabe mit useInputs und senden Sie ihn in einem Header an die API:

import { useFetch } from "~lib/use-fetch";
import { useInputs } from "~lib/use-inputs";

const { API_KEY } = useInputs();

const { data } = useFetch<Weather>("https://api.example.com/weather", {
headers: { "X-Api-Key": API_KEY },
});

Gut zu wissen:

  • Einen gespeicherten Wert können Sie weder ansehen noch bearbeiten. Um ihn zu ändern, löschen Sie ihn und fügen ihn neu hinzu.
  • Änderungen gelten sofort, auf jedem Rahmen, ohne dass Sie veröffentlichen müssen. Alle Versionen Ihres Widgets teilen sich dieselben Privaten Eingaben.
  • Remixe bekommen sie nicht. Wer Ihr Widget remixt, muss eigene hinzufügen.

Der eigene Schlüssel jeder Person: eine vertrauliche Eingabe​

Wenn jede Person ihren eigenen Schlüssel braucht, etwa um ihr eigenes Konto zu sehen, fragen Sie ihn mit einer Eingabe vom Typ Vertraulich ab. Sie funktioniert wie jede andere Eingabe, verbirgt aber, was eingetippt wird, wie ein Passwortfeld.

Bei einem Dienst anmelden​

Für Dienste, bei denen man sich anmeldet, etwa Google, GitHub oder Spotify, verwenden Sie stattdessen eine Integration. Wer Ihr Widget hinzufügt, meldet sich einmal an, und Ihr Widget bekommt ein Token, mit dem es den Dienst im Namen dieser Person aufruft.