@@ -9,6 +9,7 @@ import Compatibility from '@components/plugins/Compatibility.astro';
99
1010import { Steps , Tabs , TabItem } from ' @astrojs/starlight/components' ;
1111import CommandTabs from ' @components/CommandTabs.astro' ;
12+ import PluginPermissions from ' @components/PluginPermissions.astro' ;
1213
1314<PluginLinks plugin = { frontmatter .plugin } />
1415
@@ -33,6 +34,7 @@ import CommandTabs from '@components/CommandTabs.astro';
3334 yarn = " yarn run tauri add stronghold"
3435 pnpm = " pnpm tauri add stronghold"
3536 bun = " bun tauri add stronghold"
37+ deno = " deno task tauri add stronghold"
3638 cargo = " cargo tauri add stronghold"
3739 />
3840 </TabItem >
@@ -66,6 +68,7 @@ import CommandTabs from '@components/CommandTabs.astro';
6668 npm = " npm install @tauri-apps/plugin-stronghold"
6769 yarn = " yarn add @tauri-apps/plugin-stronghold"
6870 pnpm = " pnpm add @tauri-apps/plugin-stronghold"
71+ deno = " deno add npm:@tauri-apps/plugin-stronghold"
6972 bun = " bun add @tauri-apps/plugin-stronghold"
7073 />
7174
@@ -76,8 +79,39 @@ import CommandTabs from '@components/CommandTabs.astro';
7679
7780## 用法
7881
82+ 该插件必须使用密码哈希函数进行初始化,该函数接收密码字符串,并必须返回由其派生的 32 字节哈希值。
83+
84+ ### 使用 argon2 密码散列函数初始化
85+
86+ Stronghold 插件提供了一个默认的哈希函数,使用的是 [ argon2] 算法。
87+
88+ ``` rust title="src-tauri/src/lib.rs"
89+ use tauri :: Manager ;
90+
91+ pub fn run () {
92+ tauri :: Builder :: default ()
93+ . setup (| app | {
94+ let salt_path = app
95+ . path ()
96+ . app_local_data_dir ()
97+ . expect (" could not resolve app local data path" )
98+ . join (" salt.txt" );
99+ app . handle (). plugin (tauri_plugin_stronghold :: Builder :: with_argon2 (& salt_path ). build ())? ;
100+ Ok (())
101+ })
102+ . run (tauri :: generate_context! ())
103+ . expect (" error while running tauri application" );
104+ }
105+ ```
106+
79107### 使用自定义密码散列函数初始化
80108
109+ 或者,您也可以通过使用 ` tauri_plugin_stronghold::Builder::new ` 构造函数来提供您自己的哈希算法。
110+
111+ :::note
112+ 密码哈希值必须恰好包含 32 个字节。这是 Stronghold 的要求。
113+ :::
114+
81115``` rust title="src-tauri/src/lib.rs"
82116pub fn run () {
83117 tauri :: Builder :: default ()
@@ -108,34 +142,17 @@ pub fn run() {
108142}
109143```
110144
111- ### 使用 argon2 密码散列函数初始化
112-
113- ``` rust title="src-tauri/src/lib.rs"
114- use tauri :: Manager ;
115-
116- pub fn run () {
117- tauri :: Builder :: default ()
118- . setup (| app | {
119- let salt_path = app
120- . path ()
121- . app_local_data_dir ()
122- . expect (" could not resolve app local data path" )
123- . join (" salt.txt" );
124- app . handle (). plugin (tauri_plugin_stronghold :: Builder :: with_argon2 (& salt_path ). build ())? ;
125- Ok (())
126- })
127- . run (tauri :: generate_context! ())
128- . expect (" error while running tauri application" );
129- }
130- ```
131-
132145### 在 JavaScript 使用
133146
134147Stronghold 插件可以在 JavaScript 中使用。
135148
136149``` javascript
137150import { Client , Stronghold } from ' @tauri-apps/plugin-stronghold' ;
151+ // 当设置 `"withGlobalTauri": true` 时,你可以用
152+ // const { Client, Stronghold } = window.__TAURI__.stronghold;
138153import { appDataDir } from ' @tauri-apps/api/path' ;
154+ // 当设置 `"withGlobalTauri": true` 时,你可以用
155+ // const { appDataDir } = window.__TAURI__.path;
139156
140157const initStronghold = async () => {
141158 const vaultPath = ` ${ await appDataDir ()} /vault.hold` ;
@@ -189,50 +206,17 @@ await store.remove(key);
189206
190207## 权限
191208
192- 默认情况下,所有插件命令都被阻止,无法访问。你必须在你的 ` capabilities ` 配置中定义一个权限列表 。
209+ 默认情况下,所有具有潜在危险的插件命令和范围都会被阻止且无法访问。您必须修改 ` capabilities ` 文件夹中的配置来启用它们 。
193210
194- 更多信息请参见 [ 访问控制列表 ] ( /zh-cn/reference/acl/ ) 。
211+ 参见 [ 能力概览 ] ( /zh-cn/security/capabilities/ ) 以获取更多信息,以及插件的 [ 分步导览 ] ( /zh-cn/learn/security/using-plugin-permissions/ ) 来调整插件权限 。
195212
196213``` json title="src-tauri/capabilities/default.json" ins={8-14}
197214{
198- "$schema" : " ../gen/schemas/desktop-schema.json" ,
199- "identifier" : " main-capability" ,
200- "description" : " Capability for the main window" ,
201- "windows" : [" main" ],
215+ ...,
202216 "permissions" : [
203- " path:default" ,
204- " stronghold:allow-initialize" ,
205- " stronghold:allow-create-client" ,
206- " stronghold:allow-load-client" ,
207- " stronghold:allow-save" ,
208- " stronghold:allow-save-store-record"
209- " stronghold:allow-get-store-record" ,
210- " stronghold:allow-remove-store-record" ,
217+ " stronghold:default" ,
211218 ]
212219}
213220```
214221
215- | 权限 | 描述 |
216- | -------------------------------------- | ------------------------------------------------------------- |
217- | ` stronghold:allow-create-client ` | 在没有预先配置的作用域的情况下启用 create_client 命令。 |
218- | ` stronghold:deny-create-client ` | 拒绝没有任何预配置范围的 create_client 命令。 |
219- | ` stronghold:allow-destroy ` | 在没有预先配置的作用域的情况下启用 destroy 命令。 |
220- | ` stronghold:deny-destroy ` | 拒绝没有任何预配置范围的 destroy 命令。 |
221- | ` stronghold:allow-execute-procedure ` | 在没有预先配置的作用域的情况下启用 execute_procedure 命令。 |
222- | ` stronghold:deny-execute-procedure ` | 拒绝没有任何预配置范围的 execute_procedure 命令。 |
223- | ` stronghold:allow-get-store-record ` | 在没有预先配置的作用域的情况下启用 get_store_record 命令。 |
224- | ` stronghold:deny-get-store-record ` | 拒绝没有任何预配置范围的 get_store_record 命令。 |
225- | ` stronghold:allow-initialize ` | 在没有预先配置的作用域的情况下启用 initialize 命令。 |
226- | ` stronghold:deny-initialize ` | 拒绝没有任何预配置范围的 initialize 命令。 |
227- | ` stronghold:allow-load-client ` | 在没有预先配置的作用域的情况下启用 load_client 命令。 |
228- | ` stronghold:deny-load-client ` | 拒绝没有任何预配置范围的 load_client 命令。 |
229- | ` stronghold:allow-remove-secret ` | 在没有预先配置的作用域的情况下启用 remove_secret 命令。 |
230- | ` stronghold:deny-remove-secret ` | 拒绝没有任何预配置范围的 remove_secret 命令。 |
231- | ` stronghold:allow-remove-store-record ` | 在没有预先配置的作用域的情况下启用 remove_store_record 命令。 |
232- | ` stronghold:deny-remove-store-record ` | 拒绝没有任何预配置范围的 remove_store_record 命令。 |
233- | ` stronghold:allow-save ` | 在没有预先配置的作用域的情况下启用 save 命令。 |
234- | ` stronghold:deny-save ` | 拒绝没有任何预配置范围的 save 命令。 |
235- | ` stronghold:allow-save-secret ` | 在没有预先配置的作用域的情况下启用 save_secret 命令。 |
236- | ` stronghold:deny-save-secret ` | 拒绝没有任何预配置范围的 save_secret 命令。 |
237- | ` stronghold:allow-save-store-record ` | 在没有预先配置的作用域的情况下启用 save_store_record 命令。 |
238- | ` stronghold:deny-save-store-record ` | 拒绝没有任何预配置范围的 save_store_record 命令。 |
222+ <PluginPermissions plugin = { frontmatter .plugin } />
0 commit comments