# 注入凭据

> 通过 Extended Preferences 提供网站自动填充凭据，不添加普通已保存密码。

Source: https://console.getchrovia.com/zh/docs/sdk-injected-credentials

**能力：**`injectedCredentials`。**配置：**`internal.injected_credentials` 数组。仅由内核读取此配置不需要 JavaScript API 或 `extendedPrefs` 能力。

## 配置测试登录

```json
{
  "internal": {
    "injected_credentials": [
      {
        "url": "https://example.com/login",
        "username": "sdk-test-user",
        "password": "replace-with-a-test-password"
      }
    ]
  }
}
```

使用自己的测试站点和凭据。合并到 [EP](https://console.getchrovia.com/zh/docs/sdk-extended-preferences)，按需重新签名，并在打开登录页前重启。聚焦可识别的登录字段，测试 Chromium 自动填充建议。它不保证自动提交，也不保证适配所有自定义表单。

## 字段与匹配

每项需要字符串 `url`、`username`、`password`，URL 必须是有效 HTTP(S)。凭据按 Chromium 登录域分组，不按 CSS 选择器或精确页面路径匹配。`/login` 对应的凭据不只限于该路径。同一登录域可以提供多个账号。

格式错误或非 HTTP(S) URL 会跳过并记录日志。编辑凭据后应完全重启，改文件不会更新已运行的实例。

## 自动填充，不添加普通已保存密码

注入凭据用于自动填充，不会添加为普通已保存密码。对于匹配的登录域，浏览器不会显示相应的保存、更新及相关密码管理提示，也不会将注入账号当成新发现的密码再次询问保存。

需要真正导入导出已保存密码或观察变更时，使用[密码存储](https://console.getchrovia.com/zh/docs/sdk-passwords)。避免通过两种方式重复提供同一站点账号，它们的持久化与界面约定不同。

文件中的密码可被读取，已签名文件也一样。限制文件访问，避免同时通过 `unrestrictedApi` 和 `extendedPrefs` 将密码暴露给页面。

## 更新与验证

替换实例 EP 中的凭据，重新签名已签名字段并重启。移除覆盖层不会删除 Profile 中独立保存的密码。没有建议时，检查能力、EP 验证、登录域、表单识别，以及实际启动的用户数据目录是否已更新。

可选的[密码显示限制](https://console.getchrovia.com/zh/docs/sdk-password-reveal-block)影响受支持的显示界面，但不会使注入秘密变成接收站点无法访问的数据。
