Azure Communication Identity client library for JavaScript - sürüm 2.0.0

Kimlik kütüphanesi, Azure İletişim Hizmetleri kullanıcıları ve tokenlarını yönetmek için kullanılır.

Başlarken

Prerequisites

Yükleniyor

npm install @azure/communication-identity

Tarayıcı desteği

JavaScript Paketi

Bu istemci kitaplığını tarayıcıda kullanmak için önce bir paketleyici kullanmanız gerekir. Bunun nasıl yapılacağının ayrıntıları için lütfenpaketleme belgelerimize bakın.

Temel kavramlar

Clients

Kullanıcıları CommunicationIdentityClient ve tokenlarını yönetmek için yöntemler sunar.

Examples

Authentication

Azure portal'daki İletişim Hizmetleri kaynağınızdan anahtar ve/veya bağlantı dizesi alabilirsiniz. Bir anahtara sahip olduğunuzda, aşağıdaki yöntemlerden herhangi biriyle doğrulama CommunicationIdentityClient yapabilirsiniz:

İstemciyi başlatmadan önce ile AzureKeyCredential oluşturun KeyCredential

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

Bağlantı dizesi kullanma

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

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

İstemciyi başlatmak için bir anahtar kullanırsanız uygun uç noktayı da sağlamanız gerekir. Bu uç noktayı Azure portalİletişim Hizmetleri kaynağınızdan alabilirsiniz.

Usage

Yeni bir kullanıcı yaratmak

Yeni bir kullanıcı oluşturmak için bu createUser yöntemi kullanın.

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

Kullanıcı tokeni oluşturmak ve yenilemek

Bu getToken yöntemi, mevcut bir kullanıcı için token çıkarmak veya yenilemek için kullanın. Yöntem ayrıca iletişim token kapsamlarının bir listesini de içerir. Kapsam seçenekleri şunları içerir:

  • chat (Sohbet API'lerine tam erişim için bunu kullanın)
  • voip (Tam Çağrı API'lerine erişim için bunu kullanın)
  • chat.join (Sohbet API'lerine erişim ama sohbet başlıkları oluşturma, silme veya güncelleme yetkisi olmadan)
  • chat.join.limited (Katılımcı ekleme veya çıkarma imkanı olmayan daha sınırlı bir chat.join sürümü)
  • voip.join (Çağrı API'lerine erişim ama yeni çağrılar başlatma yetkisi olmadan)
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"]);

Kullanıcı tokenını yenilemek için aynı kullanıcıya başka bir token verin.

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

Özel son kullanma süresine sahip bir kullanıcı tokenı oluşturmak

Ayrıca, son kullanma süresini özelleştirerek bir İletişim Kimliği erişim belirteğeri oluşturmak da mümkündür. Tokenın geçerlilik süresi [60.1440] dakika içinde olmalıdır. Sağlanmazsa, varsayılan değer olan 1440 dakika (24 saat) kullanılır.

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

Tek bir istekte kullanıcı ve token oluşturmak

Kolaylık için, yeni bir kullanıcı oluşturup tek bir fonksiyon çağrısıyla token vermek için kullanın createUserAndToken . Bu, önce bir kullanıcı oluşturup ardından token vermek yerine tek bir web talebi anlamına geliyor.

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

Tek bir istekte özel son kullanma süresine sahip bir kullanıcı ve token oluşturmak

Ayrıca, son kullanma süresini özelleştirerek bir İletişim Kimliği erişim belirteğeri oluşturmak da mümkündür. Tokenın geçerlilik süresi [60.1440] dakika içinde olmalıdır. Sağlanmazsa, varsayılan değer olan 1440 dakika (24 saat) kullanılır.

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

Bir kullanıcı için tokenların iptal edilmesi

Bir kullanıcı için verilen tüm tokenları geri almak için bu revokeTokens yöntemi kullanın.

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

Bir kullanıcının sililmesi

Bir kullanıcıyı silmek için bu deleteUser yöntemi kullanın.

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

Bir Teams Kullanıcısının Azure AD erişim belirtekenini İletişim erişim belirteci ile değiştirmek

Bir Teams kullanıcısının Azure AD erişim tokenı, uygun bir son kullanma süresine sahip yeni CommunicationAccessToken bir tokenle değiştirmek için yöntem kullanıngetTokenForTeamsUser.

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

Loglamayı etkinleştirmek, hatalarla ilgili yararlı bilgilerin ortaya çıkmasına yardımcı olabilir. HTTP isteklerinin ve yanıtlarının günlüğünü görmek için ortam değişkenini AZURE_LOG_LEVEL olarak infoayarlayın. Alternatif olarak, çalışma zamanında setLogLevel@azure/logger çağrılarak günlük tutma etkinleştirilebilir.

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

setLogLevel("info");

Sonraki Adımlar

Bu kitaplığın nasıl kullanılacağına ilişkin ayrıntılı örnekler için lütfen samples dizinine göz atın.

Contributing

Bu kitaplığa katkıda bulunmak istiyorsanız kodu oluşturma ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzu okuyun.