Skip to content
Tauri 中文网

使用插件权限

本练习的目标是更好地理解如何启用或禁用插件权限,它们在哪里被描述,以及如何使用插件的默认权限。

🌐 The goal of this exercise is to get a better understanding on how plugin permissions can be enabled or disabled, where they are described and how to use default permissions of plugins.

到最后,你将具备查找和使用任意插件权限的能力,并且能够理解如何定制现有权限。你将拥有一个示例 Tauri 应用,其中使用了一个插件及其特定权限。

🌐 At the end you will have the ability to find and use permissions of arbitrary plugins and understand how to custom tailor existing permissions. You will have an example Tauri application where a plugin and plugin specific permissions are used.

  1. 创建你的 Tauri 应用。 在我们的示例中,我们将实现 create-tauri-app

    sh <(curl https://create.tauri.app/sh)

    我们将在这个逐步解释中使用 pnpm,但你可以选择其他包管理器并相应地在命令中替换它。

  2. 要搜索现有的插件,你可以使用多种资源。

    最直接的方法是查看你的插件是否已经在文档的 插件 部分中,因此成为 Tauri 维护的插件集合的一部分。Filesystem 插件是 Tauri 插件工作区的一部分,你可以按照 说明 将其添加到你的项目中。

    如果该插件是社区努力的一部分,你很可能可以在 crates.io 上通过搜索 tauri-plugin-<your plugin name> 找到它。

  3. 每个插件都有一个 default 权限集,其中包含所有权限和范围,可在开箱即可用的合理最小功能集下使用该插件。

    对于官方维护的插件,你可以在文档中找到已渲染的描述(例如 fs default)。

    如果你是为一个社区插件搞清楚这个问题,你需要查看该插件的源代码。这应该在 your-plugin/permissions/default.toml 中定义。

  4. 这一步完全是关于找到你需要的权限,以使你的命令能够以对系统访问最小化的方式暴露给前端。

    fs 插件已自动生成权限,这将禁用或启用单个命令,并允许或禁用全局范围。

    这些可以在文档中找到,或者在插件的源代码(fs/permissions/autogenerated)中找到。

    假设我们想要启用对位于用户 $HOME 文件夹中的文本文件 test.txt 的写入。

    为此,我们将在自动生成的权限中搜索一个允许写入文本文件如 allow-write-text-file 的权限,然后再搜索一个允许我们访问 $HOME/test.txt 文件的范围。

    我们需要将这些添加到我们 src-tauri/tauri.conf.jsoncapabilities 部分,或者添加到 src-tauri/capabilities/ 文件夹中的文件中。默认情况下,src-tauri/capabilities/default.json 已经有一个可以修改的功能。

    由于 fs 插件中只有自动生成的作用域来访问整个 $HOME 文件夹,我们需要配置自己的作用域。这个作用域应该仅在 write-text-file 命令下启用,并且只应暴露我们的 test.txt 文件。

  5. 在我们添加了必要的权限之后,我们想确认我们的应用可以访问该文件并写入它的内容。


Tauri 中文网 - 粤ICP备13048890号
Nodejs.cn 旗下网站