JavaScript 用 Azure Communication Common クライアント ライブラリ - バージョン 2.3.1
このパッケージには、Azure Communication Service ライブラリの一般的なコードが含まれています。
作業の開始
前提条件
- Azure サブスクリプション。
- 既存の Communication Services リソース。 リソースを作成する必要がある場合は、Azure Portal、Azure PowerShell、または Azure CLI を使用できます。
[インストール中]
npm install @azure/communication-common
ブラウザーのサポート
JavaScript バンドル
ブラウザーでこのクライアント ライブラリを使用するには、まず bundler を使用する必要があります。 これを行う方法の詳細については、 バンドルに関するドキュメントを参照してください。
主要な概念
CommunicationTokenCredential と AzureCommunicationTokenCredential
CommunicationTokenCredential
は、チャットや通話などの Communication Services でユーザーを認証するために使用されるインターフェイスです。
には AzureCommunicationTokenCredential
、上記のインターフェイスを実装する資格情報を作成するための便利な方法が用意されており、組み込みの自動更新ロジックを利用できます。
シナリオによっては、次を使用して を AzureCommunicationTokenCredential
初期化できます。
- 静的トークン (1 回限りのチャット メッセージの送信など、有効期間の短いクライアントに適しています) または
- 通信中に継続的な認証状態を保証するコールバック関数 (長い通話セッションに最適)。
コンストラクターまたはトークン リフレッシャー コールバックを介して に AzureCommunicationTokenCredential
提供されるトークンは、Azure Communication Identity ライブラリを使用して取得できます。
例
静的トークンを使用して資格情報を作成する
有効期間の短いクライアントの場合、有効期限が切れた時点でトークンを更新する必要はありません。静的トークンを使用して を AzureCommunicationTokenCredential
インスタンス化できます。
const tokenCredential = new AzureCommunicationTokenCredential(
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjM2MDB9.adM-ddBZZlQ1WlN3pdPBOF5G4Wh9iZpxNP_fSvpF4cWs"
);
コールバックを使用して資格情報を作成する
ここでは、ユーザーの JWT トークン文字列を取得するネットワーク要求を行う関数 fetchTokenFromMyServerForUser
があることを前提としています。 それを資格情報に渡して、Bob のトークンを独自のサーバーからフェッチします。 このサーバーでは、Azure Communication Identity ライブラリを使用してトークンを発行します。 関数は常に fetchTokenFromMyServerForUser
有効なトークンを返す必要があります (有効期限が将来設定されます)。
const tokenCredential = new AzureCommunicationTokenCredential({
tokenRefresher: async () => fetchTokenFromMyServerForUser("bob@contoso.com"),
});
プロアクティブな更新を使用して資格情報を作成する
true に設定 refreshProactively
すると、トークンの有効期限が近づくと関数が呼び出 tokenRefresher
されます。
const tokenCredential = new AzureCommunicationTokenCredential({
tokenRefresher: async () => fetchTokenFromMyServerForUser("bob@contoso.com"),
refreshProactively: true,
});
プロアクティブな更新と初期トークンを使用して資格情報を作成する
の initialToken
最初の呼び出し tokenRefresher
をスキップするための最適化は省略可能です。 これを使用して、ブートをアプリケーションから後続のトークン更新サイクルから分離できます。
const tokenCredential = new AzureCommunicationTokenCredential({
tokenRefresher: async () => fetchTokenFromMyServerForUser("bob@contoso.com"),
refreshProactively: true,
token:
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjM2MDB9.adM-ddBZZlQ1WlN3pdPBOF5G4Wh9iZpxNP_fSvpF4cWs",
});
トラブルシューティング
- 無効なトークンが指定されました: コンストラクターまたは
tokenRefresher
コールバックにAzureCommunicationTokenCredential
渡すトークンが、ベア JWT トークン文字列であることを確認します。 たとえば、 Azure Communication Identity ライブラリ または REST API を使用してトークンを取得する場合は、応答オブジェクトの一部のみをtoken
渡していることを確認してください。
次の手順
共同作成
このライブラリに投稿する場合、コードをビルドしてテストする方法の詳細については、投稿ガイドを参照してください。
関連プロジェクト
Azure SDK for JavaScript