INNER CODE UNIT · JavaScript
generateSignature
obgnail/typora_plugin · plugin/article_uploader/uploaders/csdn/index.js:130
const generateSignature = (uuid, url) => {
const ekey = process.env.ALIBABA_CLOUD_EKEY
const xCaKey = process.env.ALIBABA_CLOUD_XCA_KEY
if (!ekey || !xCaKey) {
throw new Error("Missing Alibaba Cloud credentials. Set ALIBABA_CLOUD_EKEY and ALIBABA_CLOUD_XCA_KEY environment variables.")
}
const CryptoJS = require("./crypto-js/core")
require("./crypto-js/hmac")
require("./crypto-js/sha256")
require("./crypto-js/enc-base64")
const _url = new URL(url).pathname
const toEnc = `POST\napplication/json, text/plain, */*\n\napplication/json;\n\nx-ca-key:${xCaKey}\nx-ca-nonce:${uuid}\n${_url}`
const hmac = CryptoJS.HmacSHA256(toEnc, ekey)
return CryptoJS.enc.Base64.stringify(hmac)
}