Azure Communication Identity biblioteka klienta dla JavaScript - wersja 2.0.0

Biblioteka tożsamości służy do zarządzania użytkownikami i tokenami dla Azure Communication Services.

Rozpoczęcie pracy

Prerequisites

Instalowanie

npm install @azure/communication-identity

Obsługa przeglądarek

Pakiet JavaScript

Aby użyć tej biblioteki klienta w przeglądarce, najpierw należy użyć pakietu. Aby uzyskać szczegółowe informacje o tym, jak to zrobić, zapoznaj się z naszą dokumentacją dotyczącą tworzenia pakietów .

Kluczowe pojęcia

Clients

Zapewnia CommunicationIdentityClient metody zarządzania użytkownikami i ich tokenami.

Examples

Authentication

Możesz pobrać klucz i/lub parametry połączenia ze swojego zasobu Communication Services w Azure Portal. Gdy już masz klucz, możesz go uwierzytelnić CommunicationIdentityClient na dowolną z następujących metod:

Utwórz KeyCredential z przed AzureKeyCredential inicjalizacją klienta

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);

Używanie ciągu połączenia

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);

Używając 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);

Jeśli używasz klucza do inicjowania klienta, musisz również podać odpowiedni punkt końcowy. Ten punkt końcowy można uzyskać z zasobu usług Komunikacyjnych w witrynie Azure Portal.

Usage

Tworzenie nowego użytkownika

Użyj tej metody createUser , aby utworzyć nowego użytkownika.

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();

Tworzenie i odświeżanie tokena użytkownika

Użyj getToken tej metody do wydania lub odświeżenia tokena dla istniejącego użytkownika. Metoda obejmuje także listę zakresów tokenów komunikacyjnych. Opcje zakresu obejmują:

  • chat (Użyj tego, aby uzyskać pełny dostęp do API czatu)
  • voip (Użyj tego, aby uzyskać pełny dostęp do API wywołujących)
  • chat.join (Dostęp do API czatu, ale bez upoważnienia do tworzenia, usuwania lub aktualizacji wątków czatu)
  • chat.join.limited (Bardziej ograniczona wersja chat.join, która nie pozwala na dodawanie ani usuwanie uczestników)
  • voip.join (Dostęp do API wywołań, ale bez upoważnienia do rozpoczynania nowych wywołań)
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"]);

Aby odświeżyć token użytkownika, wydaj kolejny token u tego samego użytkownika.

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"]));

Tworzenie tokena użytkownika z niestandardowym wygaśnięciem

Możliwe jest także utworzenie tokena dostępu Communication Identity poprzez dostosowanie czasu wygaśnięcia. Okres ważności tokena musi mieścić się w zakresie [60,1440] minut. Jeśli nie zostanie podana, zostanie użyta domyślna wartość 1440 minut (24 godziny).

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);

Tworzenie użytkownika i tokena w jednym żądaniu

Dla wygody użyj createUserAndToken utworzenia nowego użytkownika i wydania tokena z jednym wywołaniem funkcji. Przekłada się to na pojedyncze żądanie webowe, zamiast najpierw utworzyć użytkownika, a następnie wydać 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"]);

Tworzenie użytkownika i tokena z niestandardowym wygaśnięciem w jednym żądaniu

Możliwe jest także utworzenie tokena dostępu Communication Identity poprzez dostosowanie czasu wygaśnięcia. Okres ważności tokena musi mieścić się w zakresie [60,1440] minut. Jeśli nie zostanie podana, zostanie użyta domyślna wartość 1440 minut (24 godziny).

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);

Cofnięcie tokenów dla użytkownika

Użyj tej metody revokeTokens , aby cofnąć wszystkie wydane tokeny dla użytkownika.

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);

Usuwanie użytkownika

Użyj deleteUser metody usunięcia użytkownika.

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);

Wymiana tokena dostępu Azure AD użytkownika Teams na token dostępu komunikacyjnego

Użyj getTokenForTeamsUser metody wymiany tokena dostępu do Azure AD użytkownika Teams na nowy CommunicationAccessToken token o pasującym czasie wygaśnięcia.

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

Włączenie rejestrowania może pomóc odkryć przydatne informacje o błędach. Aby wyświetlić dziennik żądań i odpowiedzi HTTP, ustaw zmienną środowiskową AZURE_LOG_LEVEL na info. Alternatywnie rejestrowanie można włączyć w czasie wykonywania, wywołując setLogLevel w @azure/logger:

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

setLogLevel("info");

Następne kroki

Zapoznaj się z przykładami katalogu, aby zapoznać się ze szczegółowymi przykładami dotyczącymi korzystania z tej biblioteki.

Contributing

Jeśli chcesz przyczynić się do tej biblioteki, przeczytaj przewodnik wkład aby dowiedzieć się więcej o budowaniu i testowaniu kodu.