你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 JavaScript 的 Azure 通信标识客户端库 - 版本 1.3.1
标识库用于管理Azure 通信服务的用户和令牌。
入门
先决条件
- 一个 Azure 订阅。
- 现有的通信服务资源。 如果需要创建资源,可以使用 Azure 门户、Azure PowerShell或 Azure CLI。
安装
npm install @azure/communication-identity
浏览器支持
JavaScript 捆绑包
若要在浏览器中使用此客户端库,首先需要使用捆绑程序。 有关如何执行此操作的详细信息,请参阅捆绑 文档。
关键概念
客户端
CommunicationIdentityClient
提供用于管理用户及其令牌的方法。
示例
身份验证
可以从 Azure 门户中的通信服务资源获取密钥和/或连接字符串。 获得密钥后,可以使用以下任一方法对 进行身份验证 CommunicationIdentityClient
:
在初始化客户端之前使用 AzureKeyCredential
创建KeyCredential
import { AzureKeyCredential } from "@azure/core-auth";
import { CommunicationIdentityClient } from "@azure/communication-identity";
const credential = new AzureKeyCredential(KEY);
const client = new CommunicationIdentityClient(ENDPOINT, credential);
使用连接字符串
import { CommunicationIdentityClient } from "@azure/communication-identity";
const connectionString = `endpoint=ENDPOINT;accessKey=KEY`;
const client = new CommunicationIdentityClient(connectionString);
使用 TokenCredential
import { DefaultAzureCredential } from "@azure/identity";
import { CommunicationIdentityClient } from "@azure/communication-identity";
const credential = new DefaultAzureCredential();
const client = new CommunicationIdentityClient(ENDPOINT, credential);
如果使用密钥初始化客户端,则还需要提供相应的终结点。 可以从 Azure 门户中的通信服务资源获取此终结点。
使用情况
创建 CommunicationIdentityClient 的实例
import { CommunicationIdentityClient } from "@azure/communication-identity";
const client = new CommunicationIdentityClient(CONNECTION_STRING);
创建新用户
createUser
使用 方法创建新用户。
const user = await client.createUser();
创建和刷新用户令牌
getToken
使用 方法为现有用户颁发或刷新令牌。 方法还采用通信令牌范围列表。 作用域选项包括:
chat
(使用此用于完全访问聊天 API)voip
(使用此方法来完全访问调用 API)chat.join
(访问聊天 API,但未授权创建、删除或更新聊天线程)chat.join.limited
(一个更受限的 chat.join 版本,不允许添加或删除参与者)voip.join
(访问呼叫 API,但未授权启动新调用)
let { token } = await client.getToken(user, ["chat"]);
若要刷新用户令牌,请向同一用户颁发另一个令牌。
let { token } = await client.getToken(user, ["chat"]);
创建具有自定义过期时间的用户令牌
还可以通过自定义过期时间来创建通信标识访问令牌。 令牌的有效期必须在 [60,1440] 分钟范围内。 如果未提供,将使用默认值 1440 分钟 (24 小时) 。
const tokenOptions: GetTokenOptions = { tokenExpiresInMinutes: 60 };
let { token } = await client.getToken(user, ["chat"], tokenOptions);
在单个请求中创建用户和令牌
为方便起见,使用 createUserAndToken
创建新用户,并通过一个函数调用颁发令牌。 这转换为单个 Web 请求,而不是先创建用户,然后颁发令牌。
let { user, token } = await client.createUserAndToken(["chat"]);
在单个请求中创建具有自定义过期时间的用户和令牌
还可以通过自定义过期时间来创建通信标识访问令牌。 令牌的有效期必须在 [60,1440] 分钟范围内。 如果未提供,将使用默认值 1440 分钟 (24 小时) 。
const userAndTokenOptions: CreateUserAndTokenOptions = { tokenExpiresInMinutes: 60 };
let { user, token } = await client.createUserAndToken(["chat"], userAndTokenOptions);
撤消用户的令牌
revokeTokens
使用 方法吊销用户的所有颁发的令牌。
await client.revokeTokens(user);
删除用户
deleteUser
使用 方法删除用户。
await client.deleteUser(user);
将 Teams 用户的 Azure AD 访问令牌交换为通信访问令牌
使用 getTokenForTeamsUser
方法将 Teams 用户的 Azure AD 访问令牌交换为具有匹配过期时间的新 CommunicationAccessToken
令牌。
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>",
});
故障排除
后续步骤
请查看 示例 目录,获取有关如何使用此库的详细示例。
贡献
若要为此库做出贡献,请阅读贡献指南,详细了解如何生成和测试代码。