@capgo/capacitor-device-integrity

中文文档
8.0.15发布于 2026/10/15MPL-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 4.1万

使用Android Widevine,Play Guide,iOS App Attest,以及设备检查的Capacitor设备完整性和欺诈信号.

中文使用文档
文档目录19 节
  1. *免费开始*
  2. 主要特点
  3. 安保模式
  4. 兼容性
  5. 安装
  6. 平台设置
  7. 机器人
  8. iOS系统
  9. 使用量
  10. 后端处理
  11. API 密码
  12. 获取能力( )
  13. 获取Widevine Fingerprint (...)
  14. 准备 Attestation (...)
  15. 创建 Atterstation (...)
  16. 创建 Assertion (...)
  17. 获取Device检查托肯 ()
  18. 接口
  19. 类型异名

@ capgo/ 电容- device- 整齐

在您的 Capacitor app 中收集设备完整性和欺诈信号: 在 Android , App Attest 和 iOS 上的设备检查上播放完整性和威德文指纹. 您的后端可以验证证明和设备检查符并使用威德文指纹作为风险信号.

Capgo - Build Capacitor apps with AI, ship updates instantly

队长:在几分钟内将修正推给您的 Capacitor 用户,在没有Mac的情况下构建已签名的iOS和Android apps,并在一击中回滚.

*免费开始*

14天无限自由审判. 不需要信用卡

🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用 @capgo/capacitor-device-integrity 在您的电容应用程序中: npx skills add Cap-go/capgo-skills。然后问你的经纪人: 加入@capgo/capor-device-integrity 到我的Capacitor app,并把它接上。" 代理设置指南 • 妇女 主机磁共振

@capgo/capacitor-device-integrity for Capacitor apps

主要特点

  • 证明数字 : prepareAttestation() 准备土生土长的证明,然后 createAttestation() 从您的后端创建一个与挑战相关的符号 .
  • 要求的断言数字 : createAssertion() 签署服务器侧检查请求的有效载荷.
  • 宽度指纹数字 : getWidevineFingerprint() 返回稳定的Android DRM衍生的ID.
  • 设备检查数字 : getDeviceCheckToken() 为欺诈状态检查创建 iOS 令牌 .
  • 能力数字 : getCapabilities() 报告当前平台所支持的内容.
  • 平台: iOS和Android. 互联网档案馆的存檔,存档日期2013-12-21. 在网上不可用.

Capacitor 的设备完整性和欺诈信号 :

  • Android: Widevine DRM指纹和Play完整性标准API验证.
  • iOS: App App Attest and Device Check. (原始内容存档于2018-09-29).
  • Web: 不支持的后退报告没有本地能力.

安保模式

这个插件是为了发现欺诈和滥用行为而设计的. 它本身并不使客户端的价值观值得信赖.

  • 在您的后端验证 App Attest 并播放完整性标志 .
  • 将 Widevine 值视为敏感的标识符 .
  • 在您的隐私政策中披露标识符的使用 .
  • 不使用Android Widevine值进行广告或交叉应用跟踪.
  • 不要尝试iOS指纹. 苹果公司不为这个使用案例提供公共审查安全的稳定设备ID.

兼容性

插件版本电容兼容性维护
v八.。 。 。 .v八.。 。 。 .对
v.。 。 。 .v.。 。 。 .应要求
v6 (英语).。 。 。 .v6 (英语).。 。 。 .应要求

安装

您可以使用我们的 AI 辅助设置安装插件 。 使用以下命令将 Capgo 技能添加到您的 AI 工具 :

npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins

然后使用下列提示:

Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-device-integrity` plugin in my project.

如果您更喜欢手动设置,请通过运行以下命令来安装插件,并遵循下面的平台特定指令:

npm install @capgo/capacitor-device-integrity
npx cap sync

平台设置

机器人

宽宽指纹不需要额外权限.

Play Google Play 需要 Google Play 服务和一个 Cloud 项目编号:

// capacitor.config.ts
plugins: {
  DeviceIntegrity: {
    cloudProjectNumber: '123456789012'
  }
}

也可以通过 cloudProjectNumber 直接到证明方法.

iOS系统

启用 Xcode 中的 App Attest 能力 :

  1. 打开你的应用目标.
  2. 转到签名能力( C) .
  3. 添加 App Attest 选项 .
  4. 验证真实的 App Attest 和 Device 行为时对物理设备进行测试 .

使用量

import { DeviceIntegrity } from '@capgo/capacitor-device-integrity';

const capabilities = await DeviceIntegrity.getCapabilities();

if (capabilities.platform === 'android' && capabilities.widevine.fingerprintAvailable) {
  const widevine = await DeviceIntegrity.getWidevineFingerprint();
  await api.saveDeviceSignal({
    widevineIdSha256: widevine.widevineIdSha256,
    fingerprint: widevine.fingerprint,
    securityLevel: widevine.securityLevel,
  });
}

if (capabilities.appAttest.supported || capabilities.playIntegrity.supported) {
  const prepared = await DeviceIntegrity.prepareAttestation();
  const challenge = await api.createDeviceChallenge();

  const attestation = await DeviceIntegrity.createAttestation({
    keyId: prepared.keyId,
    challenge,
  });

  await api.verifyDeviceAttestation(attestation);
}

if (capabilities.deviceCheck.supported) {
  const deviceCheck = await DeviceIntegrity.getDeviceCheckToken();
  await api.verifyDeviceCheckToken(deviceCheck.token);
}

后端处理

仅在服务器侧面检查后将平台特定证据存储到用户记录中 :

  • Android Widevine: 存储器 widevineIdSha256 生的,可以随意选择 widevineIdBase64 只有在你明确需要的时候.
  • Android Play Guide:用Google的服务器API来解码返回的令牌并验证请求散列,包名,证书摘要,以及设备/应用完整性判断.
  • iOS App Attest:对照苹果的App Attest规则,应用身份,非ce,公用密钥,和计数器验证验证验证对象/批发.
  • iOS 设备检查: 向 Apple 的设备检查服务器 API 发送令牌, 并在您的后端维护欺诈位.

API 密码

获取能力( )

getCapabilities() => Promise<DeviceIntegrityCapabilities>

返回当前平台上可用的本土完整性能力.

回返情况: Promise<DeviceIntegrityCapabilities>


获取Widevine Fingerprint (...)

getWidevineFingerprint(options?: WidevineFingerprintOptions | undefined) => Promise<WidevineFingerprintResult>

返回一个来自Android Widevine的指纹.

默认 fingerprint 是SHA -256 在威德文设备上 独一无二的ID和盐. 若为 hashSalt 未提供,Android使用应用程序包名作为盐.

原始的 Widevine ID 敏感,只有在 includeRawId 这是真的.

参数类型
optionsWidevineFingerprintOptions

回返情况: Promise<WidevineFingerprintResult>


准备 Attestation (...)

prepareAttestation(options?: PrepareAttestationOptions | undefined) => Promise<PrepareAttestationResult>

准备本地验证状态并返回密钥/ 提供者控件 .

iOS:创建 App Attest 密钥. Android:准备一个Play完整性标准代号提供者.

参数类型
optionsPrepareAttestationOptions

回返情况: Promise<PrepareAttestationResult>


创建 Atterstation (...)

createAttestation(options: CreateAttestationOptions) => Promise<AttestationTokenResult>

创建绑定在后端所发挑战的注册验证符 .

参数类型
optionsCreateAttestationOptions

回返情况: Promise<AttestationTokenResult>


创建 Assertion (...)

createAssertion(options: CreateAssertionOptions) => Promise<AttestationTokenResult>

创建与请求的有效载荷相绑定的请求断言符号.

参数类型
optionsCreateAssertionOptions

回返情况: Promise<AttestationTokenResult>


获取Device检查托肯 ()

getDeviceCheckToken() => Promise<DeviceCheckTokenResult>

为服务器侧欺诈状态检查创建 iOS 设备检查符 .

回返情况: Promise<DeviceCheckTokenResult>


接口

设备集成能力

Prop类型说明
platformDeviceIntegrityPlatform平台目前正在执行插件 .
widevineWidevineCapabilitiesAndroid Widevine DRM支持(英语:Android Widevine DRM).
appAttestSupportStatusiOS App Attest 支持 (英语).
deviceCheckSupportStatusiOS 设备检查支持 .
playIntegritySupportStatusAndroid Play 诚信支持.

宽宽能力

Prop类型说明
supportedbooleanWidevine DRM方案是否由设备支持.
fingerprintAvailablebooleanWidevine 设备独有的ID是否可以读取 .
securityLevelScanSupportedbooleanWidevine 安全级别属性是否可以读取 .

支助现状

Prop类型说明
supportedboolean在当前设备上是否具备此能力 .

宽宽指纹

Prop类型说明
platform'android'永远 android。 。 。 .
source'widevine'永远 widevine。 。 。 .
fingerprintstring将SHA-256指纹与用户记录并存.
widevineIdSha256stringWidevine设备独有的ID的无盐SHA-256散列.
widevineIdBase64stringRaw Widevine设备独有的ID被编码为base64. 只在 includeRawId 这是真的.
securityLevelstring可用时宽度安全级别, 例如 L1 或者说 L3。 。 。 .
vendorstring可用的DRM供应商 .
versionstringDRM 插件版本可用时 .
descriptionstring可用时 DRM 插件描述 .

宽宽字体打印选项

Prop类型说明
includeRawIdboolean返回原始的Widevine设备独有的ID作为基座64. 默认为 false。 。 。 .
hashSaltstring用来制取的可选盐 fingerprint. Android 省略时使用应用程序包名.

准备Attestation再现

Prop类型说明
keyIdstringiOS App Attest 密钥ID或Android Play Guide服务商处理ID.
formatAttestationFormat当前平台使用的原生证明格式 .

准备自动站选项

Prop类型说明
cloudProjectNumberstring仅限Android. Google Cloud project number for Play Guide. Google Cloud 互联网档案馆的存檔,存档日期2013-12-22. 谷歌Cloud project No. 可以通过 plugins.DeviceIntegrity.cloudProjectNumber。 。 。 .

证明 托肯结果

Prop类型说明
tokenstring必须验证服务器侧的托肯/ 塞子 .
keyIdstring用于创建令牌的密钥/ 提供者手柄 .
formatAttestationFormat当前平台使用的原生证明格式 .

创建 Attestation 选项

Prop类型说明
keyIdstring返回密钥/ 提供者手柄 prepareAttestation()。 。 。 .
challengestring后端发布一次性挑战.
cloudProjectNumberstring仅限Android. Google Cloud project number for Play Guide. Google Cloud 互联网档案馆的存檔,存档日期2013-12-22. 谷歌Cloud project No.

创建代理选项

Prop类型说明
keyIdstring返回密钥/ 提供者手柄 prepareAttestation()。 。 。 .
payloadstring后端发布一次性请求有效载荷或非ce.
cloudProjectNumberstring仅限Android. Google Cloud project number for Play Guide. Google Cloud 互联网档案馆的存檔,存档日期2013-12-22. 谷歌Cloud project No.

设备检查托肯结果

Prop类型说明
tokenstringiOS 设备检查令牌被编码为 Base64.

类型异名

设备集成格式

'android' | 'ios' | 'web'

证明格式

'apple-app-attest' | 'google-play-integrity-standard'

版本与发布记录

@capgo/capacitor-device-integrity 共发布 14 个版本,首次发布于 2026/06/04;过去 12 个月发布了 14 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.0.15latest2026/10/1525 天前
8.0.142026/10/1327 天前
8.0.132026/10/091 个月前
8.0.122026/10/081 个月前
8.0.102026/10/081 个月前
8.0.112026/10/081 个月前

关于 @capgo/capacitor-device-integrity 的常见问题

@capgo/capacitor-device-integrity 是什么?

使用Android Widevine,Play Guide,iOS App Attest,以及设备检查的Capacitor设备完整性和欺诈信号.

如何安装 @capgo/capacitor-device-integrity?

在项目目录运行 npm install @capgo/capacitor-device-integrity,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@capacitor/core(>=8.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capgo/capacitor-device-integrity 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capgo/capacitor-device-integrity 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@capgo/capacitor-device-integrity 可以商用吗?

@capgo/capacitor-device-integrity 使用 MPL-2.0 许可。弱 Copyleft:可以商用,也可以和闭源代码一起使用;但如果分发时修改了 MPL 授权的文件,这些文件的修改需以 MPL 开源。以上为概括,不构成法律意见,请以许可原文为准。

@capgo/capacitor-device-integrity 的下载量有多少?

根据 npm 官方下载统计,@capgo/capacitor-device-integrity 在 2026/10/09 – 2026/11/07 这 30 天内被下载 41,026 次,日均约 1,368 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capgo/capacitor-device-integrity 还在维护吗?

最新版本 8.0.15 发布于 2026/10/15(25 天前);至今共发布 14 个版本,其中过去 12 个月发布了 14 个;首次发布于 2026/06/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。