OpenID Connect (OAuth 2.0) 認証を使用して Chrome 拡張機能で収益を上げる
Chrome 拡張機能にユーザー認証を追加して収益化する方法を学びましょう。
Chrome 拡張機能にユーザー認証を追加して収益化する方法を学びましょう。
Chrome 拡張機能は、Chrome ブラウザの機能を拡張するための素晴らしい方法です。人気のある拡張機能がある場合、有料の機能を提供することで収益化を図ることができます。そのためには、ユーザー認証が必要です:
一方で、Google アカウントシステムに固執したくないのです。なぜなら、ユーザーは他のアカウントを使うことを好むかもしれませんし、同じアイデンティティシステムで統合したい複数のサービスがあるかもしれません。
OpenID Connect (OIDC) を認証に使用することの利点の簡単なまとめ:
このチュートリアルでは、OIDC プロバイダーとして Logto を使用します。これは、アイデンティティインフラストラクチャを構築するための Auth0 の代替手段です。
さぁ始めましょう!
Chrome 拡張機能のポップアップに「サインイン」ボタンを配置したと仮定すると、認証フローは次のようになります:
拡張機能の他のインタラクティブページについては、Extension popup 参加者をページ名で置き換えるだけです。このチュートリアルでは、ポップアップページに焦点を当てます。
はじめに、"Single page app" タイプの Logto アプリケーションを作成します。Logto アプリケーションを作成する手順は次のとおりです:
Chrome 拡張機能プロジェクトに Logto SDK をインストールします:
manifest.json の更新Logto SDK は manifest.json に次の権限を必要とします:
permissions.identity: サインインとサインアウトに使用される Chrome Identity API のために必要です。permissions.storage: ユーザーのセッションを保存するために必要です。host_permissions: Logto SDK が Logto API と通信するために必要です。Chrome 拡張機能のバックグラウンドスクリプトで Logto SDK を初期化します:
<your-logto-endpoint> と <your-logto-app-id> を実際の値に置き換えます。これらの値は、Logto コンソールで作成したアプリケーションページで見つけることができます。
バックグラウンドスクリプトがない場合は、公式ガイド に従って作成することができます。
次に、他の拡張機能ページからのメッセージをリッスンし、認証プロセスを処理します:
上記のコードでは、2 つのリダイレクト URI が使用されています。これらはどちらも chrome.identity.getRedirectURL によって生成される 組み込み Chrome API です。2 つの URI は次のようになります:
https://<extension-id>.chromiumapp.org/callbackhttps://<extension-id>.chromiumapp.org/これらの URI はアクセスできないことに注意が必要であり、Chrome が認証プロセスのために特定のアクションをトリガーするためだけに使われます。
次に、作成したリダイレクト URI を許可するように Logto アプリケーション設定を更新します。
https://<extension-id>.chromiumapp.org/callbackhttps://<extension-id>.chromiumapp.org/chrome-extension://<extension-id> 。Chrome 拡張機能の SDK はこのオリジンを使用して Logto API と通信します。<extension-id> を実際の拡張機能 ID に置き換えることを忘れないでください。拡張機能 ID は chrome://extensions ページで見つけることができます。
設定を更新した後、Logto アプリケーション設定は次のようになります:

もうすぐ完了です!ポップアップページにサインイン・サインアウトボタンとその他の必要なロジックを追加しましょう。
popup.html ファイルに:
popup.js ファイルに ( popup.js が popup.html に含まれていると仮定します):
Chrome 拡張機能で認証フローをテストできるようになりました:
Chrome は統一されたストレージ API を提供しているため、サインインおよびサインアウトフローではなく、他のすべての Logto SDK メソッドはポップアップページで直接使用できます。
popup.js で、バックグラウンドスクリプトで作成した LogtoClient インスタンスを再利用するか、同じ設定で新しいものを作成できます:
次に、認証状態とユーザープロファイルを読み込む関数を作成できます:
loadAuthenticationState 関数をサインインおよびサインアウトロジックと組み合わせることもできます:
以下は、認証状態と共に表示されるポップアップページの例です:

SDK に関する詳細情報については、公式ブラウザ SDK のドキュメント を参照してください。ブラウザ SDK は Chrome 拡張機能 SDK と同じ API を共有しています。
browser またはそれに準じるものに明示的に設定する必要があります。TypeScript、Rollup その他の設定での完全な例を含むサンプルプロジェクトを参照してください。
ユーザーが認証されるようになったので、Chrome 拡張機能で有料機能を安全に提供できます。例えば、ユーザープロファイルにユーザーのサブスクリプションステータスを保存し、拡張機能を開いたときにそれをチェックできます。
Chrome 拡張機能と Logto の力を組み合わせることで、ユーザーとあなたの両方が満足できる、より柔軟でカスタマイズ可能な拡張機能を構築できます。