Azure Communication Identity klientská knihovna pro JavaScript - verze 2.0.0

Knihovna identity se používá pro správu uživatelů a tokenů pro Azure Communication Services.

Začínáme

Prerequisites

  • Předplatné služby Azure.
  • Existující prostředek komunikační služby. Pokud potřebujete prostředek vytvořit, můžete použít webuAzure Portal, Azure PowerShellu nebo Azure CLI.

Instalování

npm install @azure/communication-identity

Podpora prohlížečů

JavaScriptový balíček

Pokud chcete tuto klientskou knihovnu použít v prohlížeči, musíte nejprve použít bundler. Podrobnosti o tom, jak to udělat, najdete v naší dokumentaci sdružování.

Klíčové koncepty

Clients

Poskytuje CommunicationIdentityClient metody pro správu uživatelů a jejich tokenů.

Examples

Authentication

Klíč a/nebo připojovací řetězec můžete získat ze svého zdroje Communication Services v Azure Portal. Jakmile máte klíč, můžete ho ověřit CommunicationIdentityClient některou z následujících metod:

Vytvořte KeyCredential s před AzureKeyCredential inicializací 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);

Použití připojovacího řetězce

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

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

Pokud k inicializaci klienta použijete klíč, budete také muset zadat příslušný koncový bod. Tento koncový bod můžete získat z prostředku služby Communication Services na webu azure Portal.

Usage

Vytvoření nového uživatele

Použijte tuto metodu createUser k vytvoření nového uživatele.

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

Vytvoření a obnovení uživatelského tokenu

Použijte tuto metodu getToken k vydání nebo obnovení tokenu pro stávajícího uživatele. Metoda také zahrnuje seznam rozsahů komunikačních tokenů. Možnosti rozsahu zahrnují:

  • chat (Použijte to pro plný přístup k Chat API)
  • voip (Použijte toto pro plný přístup k API pro volání)
  • chat.join (Přístup k Chat API, ale bez povolení k vytváření, mazání nebo aktualizaci chat vláken)
  • chat.join.limited (Omezenější verze chat.join, která neumožňuje přidávat ani odebírat účastníky)
  • voip.join (Přístup k API pro volání, ale bez povolení k zahájení nových hovorů)
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"]);

Pro obnovení uživatelského tokenu vydejte další token se stejným uživatelem.

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

Vytvoření uživatelského tokenu s vlastním expirací

Je také možné vytvořit přístupový token Communication Identity přizpůsobením doby expirace. Platnost tokenu musí být v rozmezí [60 1440] minut. Pokud není uvedeno, použije se výchozí hodnota 1440 minut (24 hodin).

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

Vytvoření uživatele a tokenu v jednom požadavku

Pro pohodlí použijte createUserAndToken k vytvoření nového uživatele a vydání tokenu s jedním voláním funkce. To znamená jeden webový požadavek, na rozdíl od vytvoření uživatele nejprve a následného vydání tokenu.

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

Vytvoření uživatele a tokenu s vlastním expirací v jediném požadavku

Je také možné vytvořit přístupový token Communication Identity přizpůsobením doby expirace. Platnost tokenu musí být v rozmezí [60 1440] minut. Pokud není uvedeno, použije se výchozí hodnota 1440 minut (24 hodin).

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

Odebírání tokenů pro uživatele

Použijte tuto metodu revokeTokens k odebrání všech vydaných tokenů uživateli.

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

Mazání uživatele

Použijte tuto metodu deleteUser k odstranění uživatele.

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

Výměna Azure AD access tokenu uživatele Teams za přístupový token pro komunikaci

Použijte getTokenForTeamsUser metodu k výměně Azure AD přístupového tokenu uživatele Teams za nový CommunicationAccessToken s odpovídajícím časem expirace.

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

Povolení protokolování může pomoct odhalit užitečné informace o chybách. Pokud chcete zobrazit protokol požadavků a odpovědí HTTP, nastavte proměnnou prostředí AZURE_LOG_LEVEL na info. Případně můžete protokolování povolit za běhu voláním setLogLevel v @azure/logger:

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

setLogLevel("info");

Další kroky

Podrobné příklady použití této knihovny najdete v ukázkách adresáři.

Contributing

Pokud byste chtěli přispět do této knihovny, přečtěte si prosím průvodce přispívání kde se dozvíte více o tom, jak kód sestavit a testovat.