Blocklet 服务


BlockletService 是一个功能强大的客户端,作为您的 blocklet 与底层 ABT Node 服务交互的主要接口。它将复杂的 GraphQL 查询和 HTTP 请求封装成一个简洁的、基于 promise 的 JavaScript API,从而简化了用户管理、会话处理、基于角色的访问控制 (RBAC) 和检索 blocklet 元数据等任务。

该服务对于构建利用 Blocklet 平台全部功能的、安全且功能丰富的应用程序至关重要。在深入了解此服务之前,建议先理解我们的身份验证指南中涵盖的概念。

工作原理#

您应用程序中的 BlockletService 客户端与在 ABT Node 上运行的 blocklet-service 进行通信。所有请求都使用 blocklet 的凭据自动进行身份验证,以确保对核心功能的安全访问。

Blocklet Service

开始使用#

要使用该服务,只需导入并实例化它即可。客户端将根据 Blocklet Server 提供的环境变量自动配置。

Getting Started

import BlockletService from '@blocklet/sdk/service/blocklet';

const client = new BlockletService();

async function main() {
  const { user } = await client.getOwner();
  console.log('Blocklet 所有者:', user.fullName);
}

main();

会话管理#

login#

验证用户身份并发起一个会话。

参数

params
object
required
登录凭据或数据。

返回

Promise<object>
Promise<object>
一个包含会话和用户信息对象。
4 subfields

refreshSession#

使用刷新令牌刷新已过期的会话。

参数

refreshToken
string
required
先前会话中的刷新令牌。
visitorId
string
访问者/设备的唯一标识符。

返回

Promise<object>
Promise<object>
一个包含新会话和用户信息对象。
4 subfields

switchProfile#

更新用户的个人资料信息。

参数

did
string
required
要更新的用户的 DID。
profile
object
required
一个包含要更新的个人资料字段的对象。
3 subfields

返回

ResponseUser
Promise<object>
一个包含更新后用户个人资料的对象。

用户管理#

getUser#

通过用户的 DID 检索单个用户的个人资料。

参数

did
string
required
要检索的用户的唯一 DID。
options
object
查询的可选配置。
2 subfields

返回

ResponseUser
Promise<object>
一个包含用户个人资料的对象。
1 subfields

getUsers#

检索分页的用户列表,支持筛选和排序。

参数

args
object
一个包含查询、排序和分页选项的对象。
3 subfields

返回

ResponseUsers
Promise<object>
一个分页的用户对象列表。
2 subfields

getUsersCount#

获取用户总数。

返回

ResponseGetUsersCount
Promise<object>
一个包含用户总数的对象。
1 subfields

getUsersCountPerRole#

获取每个角色的用户数。

返回

ResponseGetUsersCountPerRole
Promise<object>
一个包含每个角色用户数的对象。
1 subfields

getOwner#

检索 blocklet 所有者的个人资料。

返回

ResponseUser
Promise<object>
一个包含所有者用户个人资料的对象。

updateUserApproval#

批准或撤销用户对 blocklet 的访问权限。

参数

did
string
required
要更新的用户的 DID。
approved
boolean
required
设置为 `true` 表示批准,`false` 表示撤销。

返回

ResponseUser
Promise<object>
一个包含更新后用户个人资料的对象。

updateUserTags#

更新与用户关联的标签。

参数

args
object
required
2 subfields

返回

ResponseUser
Promise<object>
一个包含更新后用户个人资料的对象。

updateUserExtra#

更新用户的额外元数据。

参数

args
object
required
3 subfields

返回

ResponseUser
Promise<object>
一个包含更新后用户个人资料的对象。

updateUserInfo#

更新用户的一般信息。需要有效的用户会话 cookie。

参数

userInfo
object
required
一个包含要更新的用户字段的对象。必须包含用户的 `did`。
options
object
required
请求选项,包括头信息。
1 subfields

返回

ResponseUser
Promise<object>
一个包含更新后用户个人资料的对象。

updateUserAddress#

更新用户的物理地址。需要有效的用户会话 cookie。

参数

args
object
required
一个包含用户 DID 和地址详细信息的对象。
2 subfields
options
object
required
请求选项,包括头信息。
1 subfields

返回

ResponseUser
Promise<object>
一个包含更新后用户个人资料的对象。

用户会话#

getUserSessions#

检索用户的活动会话列表。

参数

args
object
一个包含查询和分页选项的对象。
2 subfields

返回

ResponseUserSessions
Promise<object>
一个分页的用户会话列表。
2 subfields

getUserSessionsCount#

获取用户会话的总数,支持可选筛选。

参数

args
object
一个包含查询选项的对象。
1 subfields

返回

ResponseUserSessionsCount
Promise<object>
一个包含会话总数的对象。
1 subfields

社交与社区#

getUserFollowers#

检索关注特定用户的用户列表。需要有效的用户会话 cookie。

参数

args
object
required
查询选项。
2 subfields
options
object
required
请求选项,包括头信息。
1 subfields

返回

ResponseUserFollows
Promise<object>
一个分页的关注者用户列表。

getUserFollowing#

检索特定用户正在关注的用户列表。需要有效的用户会话 cookie。

参数

args
object
required
查询选项。
2 subfields
options
object
required
请求选项,包括头信息。
1 subfields

返回

ResponseUserFollows
Promise<object>
一个分页的被关注用户列表。

getUserFollowStats#

获取用户的关注者和正在关注的数量。需要有效的用户会话 cookie。

参数

args
object
required
查询选项。
1 subfields
options
object
required
请求选项,包括头信息。
1 subfields

返回

ResponseUserRelationCount
Promise<object>
一个包含关注者和关注数量的对象。

checkFollowing#

检查一个用户是否正在关注一个或多个其他用户。

参数

args
object
required
2 subfields

返回

ResponseCheckFollowing
Promise<object>
一个对象,其中键是用户 DID,值是表示关注状态的布尔值。

followUser#

使一个用户关注另一个用户。

参数

args
object
required
2 subfields

返回

GeneralResponse
Promise<object>
一个表示成功或失败的通用响应对象。

unfollowUser#

使一个用户取消关注另一个用户。

参数

args
object
required
2 subfields

返回

GeneralResponse
Promise<object>
一个表示成功或失败的通用响应对象。

getUserInvites#

检索由特定用户邀请的用户列表。需要有效的用户会话 cookie。

参数

args
object
required
查询选项。
2 subfields
options
object
required
请求选项,包括头信息。
1 subfields

返回

ResponseUsers
Promise<object>
一个分页的受邀用户列表。

标签管理#

getTags#

检索所有可用的用户标签列表。

参数

args
object
1 subfields

返回

ResponseTags
Promise<object>
一个分页的标签对象列表。
2 subfields

createTag#

创建一个新的用户标签。

参数

args
object
required
1 subfields

返回

ResponseTag
Promise<object>
一个包含新创建标签的对象。

updateTag#

更新一个已有的用户标签。

参数

args
object
required
1 subfields

返回

ResponseTag
Promise<object>
一个包含更新后标签的对象。

deleteTag#

删除一个用户标签。

参数

args
object
required
1 subfields

返回

ResponseTag
Promise<object>
一个包含已删除标签的对象。

基于角色的访问控制 (RBAC)#

getRoles#

检索所有可用角色的列表。

返回

ResponseRoles
Promise<object>
一个包含角色列表的对象。
1 subfields

getRole#

通过名称检索单个角色。

参数

name
string
required
角色的唯一名称。

返回

ResponseRole
Promise<object>
一个包含角色详细信息的对象。

createRole#

创建一个新角色。

参数

args
object
required
3 subfields

返回

ResponseRole
Promise<object>
一个包含新创建角色的对象。

updateRole#

更新一个已有的角色。

参数

name
string
required
要更新的角色的名称。
updates
object
required
一个包含要更新字段的对象。
2 subfields

返回

ResponseRole
Promise<object>
一个包含更新后角色的对象。

deleteRole#

删除一个角色。

参数

name
string
required
要删除的角色的名称。

返回

GeneralResponse
Promise<object>
一个表示成功或失败的通用响应对象。

getPermissions#

检索所有可用权限的列表。

返回

ResponsePermissions
Promise<object>
一个包含权限列表的对象。
1 subfields

getPermissionsByRole#

检索授予特定角色的所有权限。

参数

role
string
required
角色的名称。

返回

ResponsePermissions
Promise<object>
一个包含该角色权限列表的对象。

createPermission#

创建一个新权限。

参数

args
object
required
2 subfields

返回

ResponsePermission
Promise<object>
一个包含新创建权限的对象。

updatePermission#

更新一个已有的权限。

参数

name
string
required
要更新的权限的名称。
updates
object
required
1 subfields

返回

ResponsePermission
Promise<object>
一个包含更新后权限的对象。

deletePermission#

删除一个权限。

参数

name
string
required
要删除的权限的名称。

返回

GeneralResponse
Promise<object>
一个表示成功或失败的通用响应对象。

grantPermissionForRole#

为角色分配一个权限。

参数

role
string
required
角色的名称。
permission
string
required
要授予的权限的名称。

返回

GeneralResponse
Promise<object>
一个表示成功或失败的通用响应对象。

revokePermissionFromRole#

从角色中撤销一个权限。

参数

role
string
required
角色的名称。
permission
string
required
要撤销的权限的名称。

返回

GeneralResponse
Promise<object>
一个表示成功或失败的通用响应对象。

updatePermissionsForRole#

用一组新的权限替换角色的所有现有权限。

参数

role
string
required
角色的名称。
permissions
string[]
required
要为该角色设置的权限名称数组。

返回

ResponseRole
Promise<object>
一个包含更新后角色的对象。

hasPermission#

检查角色是否具有特定权限。

参数

role
string
required
要检查的角色的名称。
permission
string
required
要验证的权限的名称。

返回

BooleanResponse
Promise<object>
一个带有布尔 `result` 属性的对象。
1 subfields

通行证管理#

issuePassportToUser#

向用户颁发一个新的通行证,并为其分配一个角色。

参数

args
object
required
2 subfields

返回

ResponseUser
Promise<object>
一个包含更新后用户个人资料的对象,包括新的通行证。

enableUserPassport#

为用户启用先前已撤销的通行证。

参数

args
object
required
2 subfields

返回

ResponseUser
Promise<object>
一个包含更新后用户个人资料的对象。

revokeUserPassport#

撤销用户的通行证。

参数

args
object
required
2 subfields

返回

ResponseUser
Promise<object>
一个包含更新后用户个人资料的对象。

removeUserPassport#

永久移除用户的通行证。

参数

args
object
required
2 subfields

返回

GeneralResponse
Promise<object>
一个表示成功或失败的通用响应对象。

Blocklet 与组件信息#

getBlocklet#

检索当前 blocklet 的元数据和状态。

参数

attachRuntimeInfo
boolean
default:false
如果为 `true`,则包含 CPU 和内存使用情况等运行时信息。
useCache
boolean
default:true
如果为 `false`,则绕过缓存以获取最新数据。

返回

ResponseBlocklet
Promise<object>
一个包含 blocklet 状态和元数据的对象。

getComponent#

通过其 DID 检索当前 blocklet 中特定组件的状态。

参数

did
string
required
要检索的组件的 DID。

返回

ComponentState
Promise<object>
一个包含组件状态和元数据的对象。

getTrustedDomains#

检索用于联合登录的受信任域列表。

返回

string[]
Promise<string[]>
一个受信任的域 URL 数组。

getVault#

检索并验证 blocklet 的保险库信息。

返回

vault
Promise<string>
验证成功后的保险库字符串。

clearCache#

根据模式清除节点上的缓存数据。

参数

args
object
1 subfields

返回

ResponseClearCache
Promise<object>
一个包含已删除缓存键列表的对象。
1 subfields

访问密钥管理#

createAccessKey#

为程序化访问创建一个新的访问密钥。

参数

params
object
required
2 subfields

返回

ResponseCreateAccessKey
Promise<object>
一个包含新创建的访问密钥和密钥机密的对象。

getAccessKey#

检索单个访问密钥的详细信息。

参数

params
object
required
1 subfields

返回

ResponseAccessKey
Promise<object>
一个包含访问密钥详细信息的对象。

getAccessKeys#

检索访问密钥列表。

参数

params
object
1 subfields

返回

ResponseAccessKeys
Promise<object>
一个分页的访问密钥对象列表。

verifyAccessKey#

验证访问密钥是否有效。

参数

params
object
required
1 subfields

返回

ResponseAccessKey
Promise<object>
如果有效,则返回一个包含访问密钥详细信息的对象。


掌握 BlockletService 后,您可能想探索如何向用户发送消息。请前往通知服务指南了解更多信息。