このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

権限 API

Baseline 広く利用可能 *

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2022年9月以降、すべてのブラウザーで利用可能です。

* この機能の一部は、対応レベルが異なる場合があります。

メモ: この機能はウェブワーカー内で利用可能です。

権限 API は、現在のコンテキストに起因する API の利用許可の状態を照会するための一貫したプログラム方法を提供します。例えば、権限 API を使用して、特定の API にアクセスするための権限が付与 (granted) または拒否 (denied) されているかどうかを確認できます。

この API による権限は、API が保護されたコンテキストで使用されるための要件、文書に適用される権限ポリシーの制限、ユーザーへのプロンプトなど、コンテキストのすべてのセキュリティ制限を効果的に集約します。 例えば、API が権限ポリシーによって制限されている場合、返される権限は denied となり、ユーザーにはアクセス許可を求めるプロンプトは表示されません。

概念と使い方

従来は、様々な API が独自の権限を一貫性のない方法で扱ってきました。例えば、通知 API は権限の状態の明示的なチェックと権限の要求を許可しますが、位置情報 API はできません(ユーザーが最初の権限の要求を拒否すると問題を引き起こします)。権限 API は、権限に関する限り、開発者がより良いユーザーエクスペリエンスを実装できるようにするためのツールを提供します。

permissions プロパティが Navigator オブジェクトで利用可能になり、標準の閲覧コンテキストとワーカーコンテキスト(WorkerNavigator — したがって、ワーカー内で権限の確認が可能)の両方で、権限 API 機能へのアクセスを提供する Permissions オブジェクトを返します。

このオブジェクトを取得した後は、Permissions.query() メソッドを使用して特定の API の PermissionStatus で解決されるプロミスを返すなど、権限関連のタスクを実行できます。 なお、状態が prompt の場合、ユーザーは機能にアクセスする前にプロンプトを確認する必要があります。また、このプロンプトの起動メカニズムは、特定の API に依存します。これは、権限 API の一部として定義されていません。

権限 API が使える API

すべての API の権限の状態が権限 API を使用して照会できるわけではありません。 権限に対応している注目すべき API には次のようなものがあります。

Location Finder という簡単な例を用意しました。 例をライブで実行��るか、Github でソースコードを見ることができます。

それがどのように機能するかについてもっと読むには 権限 API の使用を見てください。

インターフェイス

Permissions

権限の照会や取り消しのためのメソッドなど、コアとなる Permission API 機能を提供します。

PermissionStatus

権限の現在の状態、および権限の状態の変更に応答するためのイベントハンドラーへのアクセスを提供します。

他のインターフェイスへの拡張

それぞれメインコンテキストとワーカーコンテキストから Permissions オブジェクトへのアクセスを提供します。

仕様書

仕様書
Permissions

ブラウザーの互換性

api.Permissions

api.Navigator.permissions

api.WorkerNavigator.permissions

関連情報