From 761f2ff8f2013b90bf018016e3153fc8e01c6221 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Thu, 9 Feb 2023 18:05:04 +0800 Subject: [PATCH] Add JWT token to the request --- packages/api/src/resolvers/article/index.ts | 5 ++++- packages/api/src/utils/parser.ts | 10 ++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/api/src/resolvers/article/index.ts b/packages/api/src/resolvers/article/index.ts index 5731faf4e..40d1ca256 100644 --- a/packages/api/src/resolvers/article/index.ts +++ b/packages/api/src/resolvers/article/index.ts @@ -464,7 +464,10 @@ export const getArticleResolver: ResolverFn< if (!page.originalHtml) { return { errorCodes: [ArticleErrorCode.BadData] } } - const distillerResult = await getDistillerResult(page.originalHtml) + const distillerResult = await getDistillerResult( + claims.uid, + page.originalHtml + ) if (!distillerResult) { return { errorCodes: [ArticleErrorCode.BadData] } } diff --git a/packages/api/src/utils/parser.ts b/packages/api/src/utils/parser.ts index e0b6e15b0..7bfac8809 100644 --- a/packages/api/src/utils/parser.ts +++ b/packages/api/src/utils/parser.ts @@ -21,8 +21,11 @@ import { findEmbeddedHighlight, } from './highlightGenerator' import { NodeHtmlMarkdown } from 'node-html-markdown' +import { promisify } from 'util' +import * as jwt from 'jsonwebtoken' const logger = buildLogger('utils.parse') +const signToken = promisify(jwt.sign) export const ALLOWED_CONTENT_TYPES = [ 'text/html', @@ -487,6 +490,7 @@ export const htmlToMarkdown = (html: string) => { } export const getDistillerResult = async ( + uid: string, html: string ): Promise => { try { @@ -496,7 +500,13 @@ export const getDistillerResult = async ( return undefined } + const token = await signToken({ uid }, '1h') + + console.debug('Parsing by distiller', url) const response = await axios.post(url, html, { + headers: { + Authorization: token as string, + }, timeout: 5000, }) return response.data