Word 导入导出本地部署授权
要启用授权,请在安装过程中设置SECRET_KEY
环境变量。
如果设置了SECRET_KEY
变量,则所有请求都必须包含一个带有使用此密钥签名的 JWT(JSON Web 令牌)的标头。令牌应作为发送到Word 导入导出 REST API的每个请求的Authorization
标头的值传递。
如果您在安装过程中未设置任何SECRET_KEY
,则 Word 导入导出本地部署在向 Word 导入导出 REST API 发送请求时将不需要任何包含令牌的标头。但是,我们不建议在公共网络上运行 Word 导入导出本地部署时跳过授权。
# 生成令牌
我们强烈建议您使用jwt.io上列出的库来生成令牌。令牌在以下情况下被视为有效:
- 它使用与传递给 Word 导入导出本地部署实例相同的
SECRET_KEY
进行签名, - 它是在过去 24 小时内创建的,
- 它不是在未来发出的(即
iat
时间戳不能比当前时间新), - 它尚未过期。
Word 导入导出本地部署的令牌不需要任何其他声明,例如环境 ID(特定于协作服务器本地部署),因此您可以使用空负载创建令牌。
如果您的用例涉及从您的后端服务器发送请求,那么您可以像我们的请求示例中那样在本地生成 JWT 令牌。
在编辑器插件或其他前端使用的情况下,您应该创建一个令牌端点,该端点为授权用户返回有效的 JWT 令牌。您可以在此处找到令牌端点实现示例.
# 使用编辑器插件
CKEditor 5 提供了两个插件:导出为 Word 和 从 Word 导入。这些插件将自动从给定的tokenUrl
变量中请求令牌,并在发出导出请求时设置Authorization
标头。有关将导出为 Word 和从 Word 导入功能添加到您的 WYSIWYG 编辑器的详细信息,请参阅各自的指南!
# 带有授权头的请求示例
以下示例展示了一个生成有效 JWT 令牌并将其设置为Authorization
标头的请求
const fs = require( 'fs' );
const jwt = require( 'jsonwebtoken' );
const axios = require( 'axios' );
const SECRET_KEY = 'secret';
const token = jwt.sign( {}, SECRET_KEY, { algorithm: 'HS256' } );
const data = {
html: "<p>I am a teapot</p>",
css: "p { color: red; }",
};
const config = {
headers: {
Authorization: token
},
responseType: 'arraybuffer',
};
axios.post( 'http://localhost:8080/v1/convert', data, config )
.then( response => {
fs.writeFileSync('./file.docx', response.data, 'binary');
} ).catch( error => {
console.log( error );
} );
SECRET_KEY
- 这是传递给 Word 导入导出本地部署实例的密钥。
请参阅Word 导入导出 REST API 文档以开始使用该服务。
注意:如果您使用的是 Postman 或 Insomnia 等 API 客户端,则在“Headers”选项卡中将 JWT 令牌设置为Authorization
标头。不要使用内置令牌授权,因为这将生成带有添加到令牌的Bearer
前缀的无效标头。