Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Permissions API

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2022.

* Some parts of this feature may have varying levels of support.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die Permissions API bietet eine konsistente programmgesteuerte Methode, um den Status von API-Berechtigungen für den aktuellen Kontext abzufragen, wie z.B. eine Webseite oder einen Worker. Zum Beispiel kann sie verwendet werden, um festzustellen, ob die Berechtigung für den Zugriff auf eine bestimmte Funktion oder API erteilt, verweigert oder spezifische Benutzerberechtigung erforderlich ist.

Konzepte und Verwendung

Historisch haben verschiedene APIs ihre Berechtigungen inkonsistent gehandhabt — zum Beispiel stellte die Notifications API eigene Methoden zum Anfordern von Berechtigungen und Überprüfen des Berechtigungsstatus bereit, während die Geolocation API dies nicht tat. Die Permissions API bietet Entwicklern die Werkzeuge, um eine konsistente Benutzererfahrung bei der Arbeit mit Berechtigungen umzusetzen.

Die Berechtigungen dieser API bündeln effektiv alle Sicherheitsbeschränkungen für den Kontext, einschließlich jeglicher Anforderung, dass eine API in einem sicheren Kontext verwendet wird, Permissions-Policy-Beschränkungen, die auf das Dokument angewendet werden, Anforderungen für Benutzerinteraktion und Benutzeraufforderungen. Wenn eine API z.B. durch eine Berechtigungsrichtlinie eingeschränkt ist, würde die zurückgegebene Berechtigung denied sein und der Benutzer würde nicht aufgefordert werden, Zugriff zu gewähren.

Die permissions-Eigenschaft ist sowohl im Standard-Browsing-Kontext als auch im Worker-Kontext auf dem Navigator-Objekt verfügbar (WorkerNavigator — sodass Berechtigungsüberprüfungen innerhalb von Workern möglich sind) und liefert ein Permissions-Objekt, das Zugriff auf die Funktionalität der Permissions API bietet.

Sobald Sie dieses Objekt haben, können Sie die Methode Permissions.query() verwenden, um ein Versprechen zurückzugeben, das mit dem PermissionStatus für eine bestimmte API aufgelöst wird.

Anfordern von Berechtigungen

Wenn der Berechtigungsstatus prompt lautet, muss der Benutzer eine Aufforderung bestätigen, um Zugriff auf die Funktion zu gewähren.

Der Mechanismus, der diese Aufforderung auslöst, hängt von der spezifischen API ab — er ist nicht als Teil der Permissions API definiert. Im Allgemeinen ist der Auslöser Code, der eine Methode aufruft, um die Funktion zu verwenden oder zu öffnen, oder der sich für Benachrichtigungen von der Funktion registriert, die anschließend darauf zugreifen wird.

Beachten Sie, dass nicht alle Funktionen eine Aufforderung erfordern. Berechtigungen könnten durch eine Permission Policy, implizit durch transiente Aktivierung oder durch einen anderen Mechanismus erteilt werden.

Widerruf von Berechtigungen

Der Widerruf von Berechtigungen wird nicht von der API verwaltet. Genauer gesagt, eine Methode Permissions.revoke() wurde vorgeschlagen, aber seitdem aus den Browsern, in denen sie implementiert war, entfernt.

Benutzer können Berechtigungen für bestimmte Sites manuell über die Browsereinstellungen entfernen:

  • Firefox: Hamburger-Menü > Einstellungen > Datenschutz & Sicherheit > Berechtigungen (dann die Einstellungen-Schaltfläche für die gewünschte Berechtigung auswählen).
  • Chrome: Hamburger-Menü > Einstellungen > Erweiterte Einstellungen anzeigen. Im Abschnitt Datenschutz klicken Sie auf Inhaltseinstellungen. Im erscheinenden Dialogfeld suchen Sie den Abschnitt Standort und wählen Fragen, wenn eine Website versucht, …. Schließlich klicken Sie auf Ausnahmen verwalten und entfernen die Berechtigungen, die Sie den interessierten Sites gewährt haben.

Berechtigungsbewusste APIs

Nicht der Berechtigungsstatus aller APIs kann über die Permissions API abgefragt werden. Eine unvollständige Liste von berechtigungsbewussten APIs umfasst:

Schnittstellen

Permissions

Bietet die grundlegende Funktionalität der Permission API, wie z.B. Methoden zur Abfrage und zum Widerruf von Berechtigungen.

PermissionStatus

Ermöglicht den Zugriff auf den aktuellen Status einer Berechtigung und einen Ereignishandler, um auf Änderungen im Berechtigungsstatus zu reagieren.

Erweiterungen zu anderen Schnittstellen

Bietet Zugriff auf das Permissions-Objekt aus dem Hauptkontext und dem Worker-Kontext.

Beispiele

Wir haben ein Beispiel namens Location Finder erstellt. Sie können das Beispiel live ausführen, den Quellcode auf GitHub sehen oder mehr darüber lesen, wie es in unserem Artikel Using the Permissions API funktioniert.

Das Beispiel der Permissions.query() zeigt auch Code, der die meisten Berechtigungen im aktuellen Browser testet und das Ergebnis protokolliert.

Spezifikationen

Specification
Permissions

Browser-Kompatibilität

api.Permissions

api.Navigator.permissions

api.WorkerNavigator.permissions

Siehe auch