Perpustakaan klien Azure Communication Identity untuk JavaScript - versi 2.0.0

Pustaka identitas digunakan untuk mengelola pengguna dan token untuk Azure Communication Services.

Memulai Langkah Pertama

Prerequisites

Menginstal

npm install @azure/communication-identity

Dukungan peramban

Bundel JavaScript

Untuk menggunakan pustaka klien ini di browser, pertama-tama Anda perlu menggunakan bunder. Untuk detail tentang cara melakukan ini, silakan lihat dokumentasi bundling kami.

Konsep Utama

Clients

Mereka CommunicationIdentityClient menyediakan metode untuk mengelola pengguna dan token mereka.

Examples

Authentication

Anda dapat memperoleh kunci dan/atau string koneksi dari sumber daya Communication Services Anda di portal Azure. Setelah Anda memiliki kunci, Anda dapat mengautentikasi dengan CommunicationIdentityClient salah satu metode berikut:

Buat KeyCredential dengan AzureKeyCredential sebelum menginisialisasi klien

import { AzureKeyCredential } from "@azure/core-auth";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const key = "<some-key>";
const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new AzureKeyCredential(key);
const client = new CommunicationIdentityClient(endpoint, credential);

Menggunakan string koneksi

import { CommunicationIdentityClient } from "@azure/communication-identity";

// Example connection string
const connectionString =
  "endpoint=https://contoso.eastus.communications.azure.net/;accesskey=secret";

const client = new CommunicationIdentityClient(connectionString);

Menggunakan TokenCredential

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

Jika Anda menggunakan kunci untuk menginisialisasi klien, Anda juga perlu menyediakan titik akhir yang sesuai. Anda bisa mendapatkan titik akhir ini dari sumber daya Communication Services Anda di Portal Microsoft Azure.

Usage

Membuat pengguna baru

Gunakan metode ini createUser untuk membuat pengguna baru.

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

const user = await client.createUser();

Membuat dan menyegarkan token pengguna

Gunakan metode ini getToken untuk mengeluarkan atau memperbarui token bagi pengguna yang sudah ada. Metode ini juga mencakup daftar cakupan token komunikasi. Opsi cakupan meliputi:

  • chat (Gunakan ini untuk akses penuh ke API Chat)
  • voip (Gunakan ini untuk akses penuh ke API Pemanggilan)
  • chat.join (Akses ke API Chat tetapi tanpa otorisasi untuk membuat, menghapus, atau memperbarui thread chat)
  • chat.join.limited (Versi chat.join yang lebih terbatas yang tidak memungkinkan penambahan atau penghapusan peserta)
  • voip.join (Akses ke API Pemanggil tetapi tanpa otorisasi untuk memulai panggilan baru)
import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

const user = await client.createUser();

const { token } = await client.getToken(user, ["chat"]);

Untuk menyegarkan token pengguna, keluarkan token lain dengan pengguna yang sama.

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

const user = await client.createUser();

let { token } = await client.getToken(user, ["chat"]);

// Refresh the token again
({ token } = await client.getToken(user, ["chat"]));

Membuat token pengguna dengan kedaluwarsa khusus

Anda juga dapat membuat token akses Communication Identity dengan menyesuaikan waktu kedaluwarsaannya. Masa berlaku token harus berada dalam rentang [60.1440] menit. Jika tidak disediakan, nilai default 1440 menit (24 jam) akan digunakan.

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

const user = await client.createUser();

const tokenOptions = { tokenExpiresInMinutes: 60 };
const { token } = await client.getToken(user, ["chat"], tokenOptions);

Membuat pengguna dan token dalam satu permintaan

Untuk kemudahan, gunakan createUserAndToken untuk membuat pengguna baru dan mengeluarkan token dengan satu fungsi pemanggilan. Ini berarti satu permintaan web saja, bukan membuat pengguna terlebih dahulu lalu mengeluarkan token.

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

const { user, token } = await client.createUserAndToken(["chat"]);

Membuat pengguna dan token dengan kedaluwarsa khusus dalam satu permintaan

Anda juga dapat membuat token akses Communication Identity dengan menyesuaikan waktu kedaluwarsaannya. Masa berlaku token harus berada dalam rentang [60.1440] menit. Jika tidak disediakan, nilai default 1440 menit (24 jam) akan digunakan.

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

const userAndTokenOptions = { tokenExpiresInMinutes: 60 };
const { user, token } = await client.createUserAndToken(["chat"], userAndTokenOptions);

Mencabut token untuk pengguna

Gunakan metode ini revokeTokens untuk mencabut semua token yang diterbitkan untuk pengguna.

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

// Create user
const user = await client.createUser();

// Later when you want to revoke the user's tokens
await client.revokeTokens(user);

Menghapus pengguna

Gunakan metode untuk deleteUser menghapus pengguna.

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

// Create user
const user = await client.createUser();

// Later when you want to delete the user
await client.deleteUser(user);

Menukar token akses Azure AD dari Pengguna Teams dengan token akses Komunikasi

Gunakan getTokenForTeamsUser metode untuk menukar token akses Azure AD dari pengguna Teams dengan token baru CommunicationAccessToken dengan waktu kedaluwarsa yang cocok.

import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";

const endpoint = "https://contoso.eastus.communications.azure.net";

const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(endpoint, credential);

const { token, expiresOn } = await client.getTokenForTeamsUser({
  teamsUserAadToken: "<aad-access-token-of-a-teams-user>",
  clientId: "<cliend-id-of-an-aad-application>",
  userObjectId: "<aad-object-id-of-a-teams-user>",
});

Troubleshooting

Logging

Mengaktifkan pengelogan dapat membantu menemukan informasi yang berguna tentang kegagalan. Untuk melihat log permintaan dan respons HTTP, atur variabel lingkungan AZURE_LOG_LEVEL ke info. Atau, pengelogan dapat diaktifkan saat runtime dengan memanggil setLogLevel di @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Langkah berikutnya

Silakan lihat sampel direktori untuk contoh terperinci tentang cara menggunakan pustaka ini.

Contributing

Jika Anda ingin berkontribusi ke library ini, silakan baca panduan contributor untuk mempelajari lebih lanjut cara membuat dan menguji kode.