guideWord 导入导出本地部署授权

要启用授权,请在安装过程中设置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前缀的无效标头。