密码

本指南描述了如何保存、更新和管理用户在新在线表单中输入的密码。

概述 

Chromium 内置了一项功能,允许在用户提交包含用户名和密码的新表单时记住输入的凭据。当用户提交表单时,库会询问您是否希望保存这些凭据。

如果您保存了它们,下次加载该表单时,库将建议自动填充。

Web 表单密码自动填充

在这种情况下,必须启用 Web 表单自动填充功能。

要访问和管理所有已保存的密码,可以使用 PasswordStore,获取方式如下:

Java
Kotlin
var passwordStore = profile.passwordStore();
val passwordStore = profile.passwordStore()

保存密码 

当用户提交一个包含用户名和密码的新表单时,库会通过 SavePasswordCallback 询问你是否要保存这些凭据。在回调中,你可以选择保存或永不保存(加入黑名单)。例如:

Java
Kotlin
browser.set(SavePasswordCallback.class, (params, tell) -> {
    // 页面 URL。
    var url = params.url();
    // 对应的登录名。
    var login = params.login();

    if (login.equals("admin")) {
        // 忽略本次保存密码的尝试。
        tell.ignore();
    } else if (url.contains("sensitive-website")) {
        // 对该 URL 永远不保存密码。
        tell.neverSave();
    } else {
        // 允许 Chromium 保存密码。
        tell.save();
    }
});
browser.register(SavePasswordCallback { params, tell ->
    // 页面 URL。
    val url = params.url()
    // 对应的登录名。
    val login = params.login()
    if (login == "admin") {
        // 忽略本次保存密码的尝试。
        tell.ignore()
    } else if (url.contains("sensitive-website")) {
        // 对该 URL 永远不保存密码。
        tell.neverSave()
    } else {
        // 允许 Chromium 保存密码。
        tell.save()
    }
})

如果你选择保存密码,它将被添加到密码存储中。如果选择 “never-save(永不保存)”,则会将该 URL 的表单标记为黑名单。之后,库将永远不会再提示你为该网页保存密码。

更新密码 

当用户使用新密码提交先前已提交过的表单时,库会通过 UpdatePasswordCallback 询问您是否更新已保存的凭据。在此回调中,您可以选择更新或忽略新值。例如:

Java
Kotlin
browser.set(UpdatePasswordCallback.class, (params, tell) -> {
    // 页面 URL。
    var url = params.url();
    // 对应的登录名。
    var login = params.login();

    if (login == "admin") {
        // 忽略本次更新密码的尝试。
        tell.ignore();
    } else {
        // 允许 Chromium 更新密码。
        tell.update();
    }
});
browser.register(UpdatePasswordCallback { params, tell ->
    // 页面 URL。
    val url = params.url()
    // 对应的登录名。
    val login = params.login()

    if (login == "admin") {
        // 忽略本次更新密码的尝试。
        tell.ignore()
    } else {
        // 允许 Chromium 更新密码。
        tell.update()
    }
})

管理密码 

密码存储中的每个元素都由 PasswordRecord 表示。它包含用户的登录名和提交表单的网页 URL。它不存储密码本身。

要读取所有已保存和黑名单记录,请使用:

Java
Kotlin
var allRecords = passwordStore.all();
val allRecords = passwordStore.all()

要仅读取已保存的记录,请使用:

Java
Kotlin
var allSavedRecords = passwordStore.allSaved();
val allSavedRecords = passwordStore.allSaved()

要仅读取 “never-saved”(标记为黑名单)的记录,请使用:

Java
Kotlin
var allNeverSavedRecords = passwordStore.allNeverSaved();
val allNeverSavedRecords = passwordStore.allNeverSaved()

要从存储中删除所有记录,请使用:

Java
Kotlin
passwordStore.clear();
passwordStore.clear()

要删除与特定 URL 关联的记录,请使用:

Java
Kotlin
passwordStore.removeByUrl(url);
passwordStore.removeByUrl(url)
微信咨询

即库客服

微信公众号二维码

技术客服

微信公众号二维码