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

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

Die Permissions API bietet eine konsistente programmatische Möglichkeit, den Status von API-Berechtigungen in dem aktuellen Kontext abzufragen, wie z. B. auf einer Webseite oder einem Worker. Sie kann beispielsweise 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 Nutzung

Historisch gesehen behandelten verschiedene APIs ihre eigenen Berechtigungen inkonsistent — zum Beispiel bot die Notifications API ihre eigenen Methoden zur Anforderung von Berechtigungen und zur Überprüfung des Berechtigungsstatus an, während die Geolocation API dies nicht tat. Die Permissions API bietet die Werkzeuge, um Entwicklern zu ermöglichen, eine konsistente Benutzererfahrung im Umgang mit Berechtigungen zu implementieren.

Die Berechtigungen dieser API aggregieren effektiv alle Sicherheitsbeschränkungen für den Kontext, einschließlich der Anforderung, dass eine API in einem sicheren Kontext verwendet werden muss, Permissions-Policy-Beschränkungen, die auf das Dokument angewendet werden, Anforderungen für Benutzerinteraktion und Benutzeraufforderungen. So würde beispielsweise, wenn eine API durch Berechtigungsrichtlinien eingeschränkt ist, die zurückgegebene Berechtigung denied sein und der Benutzer würde nicht aufgefordert, einen Zugriff zu erlauben.

Die permissions-Eigenschaft wurde sowohl im Standard-Browsing-Kontext als auch im Worker-Kontext (WorkerNavigator — so sind Berechtigungsprüfungen auch innerhalb von Workern verfügbar) im Navigator-Objekt verfügbar gemacht 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 Promise zurückzugeben, das mit dem PermissionStatus für eine bestimmte API erfüllt wird.

Anfordern von Berechtigungen

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

Der Mechanismus, der diese Aufforderung auslöst, hängt von der spezifischen API ab — er wird nicht als Teil der Permissions API definiert. Im Allgemeinen wird der Auslöser durch Code verursacht, der eine Methode aufruft, um auf die Funktion zuzugreifen oder sie zu öffnen, oder der Anmeldungen für Benachrichtigungen von der Funktion mit sich führt, die sie anschließend darauf zugreift.

Beachten Sie, dass nicht alle Funktionen eine Aufforderung erfordern. Die Berechtigung kann durch eine Permission Policy, implizit durch transient activation, oder über einen anderen Mechanismus gewährt werden.

Zurückziehen von Berechtigungen

Das Zurückziehen von Berechtigungen wird nicht von der API verwaltet. Genauer gesagt, eine Methode Permissions.revoke() wurde vorgeschlagen, aber seither in denjenigen Browsern entfernt, in denen sie implementiert war.

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

  • Firefox: Hamburger-Menü > Einstellungen > Datenschutz & Sicherheit > Berechtigungen (dann den Einstellungen-Button für die jeweilige Berechtigung auswählen).
  • Chrome: Hamburger-Menü > Einstellungen > Erweiterte Einstellungen anzeigen. Im Bereich Datenschutz auf Inhaltseinstellungen klicken. In dem erscheinenden Dialogfeld den Abschnitt Standort finden und Fragen, wenn eine Website versucht... auswählen. Schließlich auf Ausnahmen verwalten klicken und die Berechtigungen entfernen, die Sie den betreffenden Websites gewährt haben.

Berechtigungsbewusste APIs

Nicht der Berechtigungsstatus aller APIs kann mithilfe der Permissions API abgefragt werden. Eine nicht erschöpfende Liste von berechtigungsbewussten APIs umfasst:

Schnittstellen

Permissions

Bietet die Kernfunktionalität der Permissions API, wie Methoden zum Abfragen und Zurückziehen von Berechtigungen.

PermissionStatus

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

Erweiterungen zu anderen Schnittstellen

Bietet Zugriff auf das Permissions-Objekt aus dem Hauptkontext bzw. 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 ansehen oder mehr darüber erfahren, wie es funktioniert, in unserem Artikel Using the Permissions API.

Das Permissions.query()-Beispiel 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