导出为 PDF 本地授权
要启用授权,请在安装期间设置SECRET_KEY
环境变量。
如果设置了SECRET_KEY
变量,则所有请求都必须具有一个带有使用此密钥签名的 JWT(JSON Web 令牌)的标头。令牌应作为发送到导出为 PDF REST API的每个请求的Authorization
标头的值传递。
如果您在安装期间未设置任何SECRET_KEY
,则导出为 PDF 本地将不需要任何带有令牌的标头来发送请求到导出为 PDF REST API。但是,我们不建议在公共网络中运行导出为 PDF 本地时跳过授权。
# 生成令牌
我们强烈建议使用jwt.io上列出的库来生成令牌。当令牌
- 使用与传递到导出为 PDF 本地实例的相同的
SECRET_KEY
签名时, - 它是在过去 24 小时内创建的,
- 它没有在将来发出(例如,
iat
时间戳不能比当前时间新), - 它尚未过期。
导出为 PDF 本地的令牌不需要任何额外的声明,例如环境 ID(这是协作服务器本地的特定声明),因此您可以使用空有效载荷创建令牌。
如果您的用例涉及从您的后端服务器发送请求,那么您可以像我们的请求示例那样在本地生成 JWT 令牌。
对于编辑器插件或其他前端用法,您应该创建一个令牌端点,该端点为授权用户返回有效的 JWT 令牌。您可以在此处找到端点实现示例。
# 使用编辑器插件
CKEditor 4 和 CKEditor 5 的插件将自动从给定的tokenUrl
变量中请求令牌,并在进行导出请求时设置Authorization
标头。有关将导出为 PDF 功能添加到您的 WYSIWYG 编辑器的详细信息,请参阅CKEditor 4 配置指南或CKEditor 5 配置指南!
# 带有授权标头的请求示例
以下示例展示了一个生成有效 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( 'https://127.0.0.1:8080/v1/convert', data, config )
.then( response => {
fs.writeFileSync('./file.pdf', response.data, 'binary');
} ).catch( error => {
console.log( error );
} );
SECRET_KEY
是传递到导出为 PDF 本地实例的密钥
请参考导出为 PDF REST API 文档以开始使用该服务。
注意:如果您使用的是 Postman 或 Insomnia 等 API 客户端,请在“标头”选项卡中将 JWT 令牌设置为Authorization
标头。不要使用内置的令牌授权,因为这将生成带有附加到令牌的Bearer
前缀的无效标头。