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 Weitgehend verfügbar *

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2022 browserübergreifend verfügbar.

* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.

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

Die Permissions API bietet eine einheitliche programmatische Methode, um den Status von API-Berechtigungen im aktuellen Kontext, wie einer Webseite oder einem Worker, abzufragen. Zum Beispiel kann überprüft werden, ob die Berechtigung zur Nutzung einer bestimmten Funktion oder API erteilt, verweigert oder eine spezielle Benutzererlaubnis erforderlich ist.

Konzepte und Nutzung

Historisch gesehen haben verschiedene APIs ihre Berechtigungen inkonsistent gehandhabt – zum Beispiel bot die Notifications API eigene Methoden zur Anforderung von Berechtigungen und zur Überprüfung des Berechtigungsstatus, während die Geolocation API dies nicht tat. Die Permissions API bietet Tools, die es Entwicklern ermöglichen, eine konsistente Benutzererfahrung bei der Arbeit mit Berechtigungen zu implementieren.

Die Berechtigungen dieser API fassen effektiv alle Sicherheitsbeschränkungen für den Kontext zusammen, einschließlich jedweder Anforderung, dass eine API in einem sicheren Kontext verwendet werden muss, Permissions-Policy-Beschränkungen, die auf das Dokument angewendet werden, Anforderungen für Benutzerinteraktionen und Benutzeraufforderungen. Wenn eine API beispielsweise durch eine Permissions-Policy eingeschränkt ist, wird die zurückgegebene Berechtigung denied sein und der Benutzer wird nicht zur Gewährung des Zugriffs aufgefordert.

Die permissions-Eigenschaft steht sowohl im Standard-Browsing-Kontext als auch im Worker-Kontext auf dem Navigator-Objekt zur Verfügung (WorkerNavigator – somit sind Berechtigungsprüfungen innerhalb von Workern möglich) und gibt ein Permissions-Objekt zurück, das Zugriff auf die Funktionalität der Permissions API bietet.

Sobald Sie dieses Objekt erhalten 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.

Berechtigung anfordern

Wenn der Berechtigungsstatus prompt ist, muss der Benutzer eine Aufforderung zur Gewährung des Zugriffs auf die Funktion bestätigen.

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 wird der Auslöser durch den Aufruf einer Methode, die auf die Funktion zugreift oder diese öffnet, oder durch das Registrieren für Benachrichtigungen von der Funktion, die anschließend darauf zugreifen wird, ausgelöst.

Beachten Sie, dass nicht alle Funktionen eine Aufforderung erfordern. Berechtigungen können durch eine Permission Policy, implizit durch transient activation oder durch irgendeinen anderen Mechanismus gewährt werden.

Berechtigung widerrufen

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

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

  • Firefox: Hamburger-Menü > Einstellungen > Datenschutz & Sicherheit > Berechtigungen (dann die Einstellungen-Taste für die entsprechende Berechtigung auswählen).
  • Chrome: Hamburger-Menü > Einstellungen > Erweiterte Einstellungen anzeigen. Im Abschnitt Datenschutz auf Inhaltseinstellungen klicken. Im erscheinenden Dialog im Abschnitt Standort die Option Fragen, wenn eine Seite... wählen. Schließlich auf Ausnahmen verwalten klicken und die Berechtigungen entfernen, die Sie den interessierten Seiten erteilt haben.

Berechtigungsbewusste APIs

Nicht alle APIs’ Berechtigungsstatus können über die Permissions API abgefragt werden. Eine nicht vollständige Liste berechtigungsbewusster APIs beinhaltet:

Schnittstellen

Permissions

Bietet die Kernfunktionalität der Permission API, wie Methoden zur Abfrage und zum Widerruf von Berechtigungen.

PermissionStatus

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

Erweiterungen anderer Schnittstellen

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

Beispiele

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

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

Spezifikationen

Spezifikation
Permissions

Browser-Kompatibilität

api.Permissions

api.Navigator.permissions

api.WorkerNavigator.permissions

Siehe auch