我在firebase函数中使用node-rsa包,但是当我运行模拟器测试该函数时,我得到以下错误:
错误:错误:25078067:DSO支持在(C:\Users\XXX\Desktop\work\XXX\functions\node_modules\node-rsa\src\schemes\pkcs1.js:154:27) at
Sign.sign (节点:/crypto/sig:131:29)上不加载共享库
我不知道从这里到哪里去,也不知道如何解决这个问题。这里是我的firebase云功能:
import NodeRSA from 'node-rsa'
import * as functions from 'firebase-functions'
const keyData = {
consumerId: '<ID REMOVED>',
privateKey: `-----BEGIN RSA PRIVATE KEY-----
<PRIVATE KEY REMOVED>
-----END RSA PRIVATE KEY-----`,
keyVer: 1
// impactId: "YOUR IMPACT AFFILIATE ID" // not required
}
const generateWalmartHeaders = () => {
const { privateKey, consumerId, keyVer } = keyData
const hashList = {
'WM_CONSUMER.ID': consumerId,
'WM_CONSUMER.INTIMESTAMP': Date.now().toString(),
'WM_SEC.KEY_VERSION': keyVer
}
const sortedHashString = `${hashList['WM_CONSUMER.ID']}\n${hashList['WM_CONSUMER.INTIMESTAMP']}\n${hashList['WM_SEC.KEY_VERSION']}\n`
const signer = new NodeRSA(privateKey, 'pkcs1')
const signature = signer.sign(sortedHashString)
const signatureEnc = signature.toString('base64')
return {
'WM_SEC.AUTH_SIGNATURE': signatureEnc,
'WM_CONSUMER.INTIMESTAMP': hashList['WM_CONSUMER.INTIMESTAMP'],
'WM_CONSUMER.ID': hashList['WM_CONSUMER.ID'],
'WM_SEC.KEY_VERSION': hashList['WM_SEC.KEY_VERSION']
}
}
export const getProductById = functions.https.onRequest(async (req, res) => {
const options = {
method: 'GET',
headers: generateWalmartHeaders()
}
try {
const response = await fetch(
`https://developer.api.walmart.com/api-proxy/service/affil/product/v2/items/4837473`,
options
)
const product = await response.json()
console.log('product?', product)
res.send(product)
} catch (error) {
console.log('error in walmartjs', error)
res.status(500).send(error)
}
})有人知道我为什么会犯这个错误吗?
发布于 2022-05-04 14:19:04
您不应该将-----BEGIN RSA PRIVATE KEY-----和-----END RSA PRIVATE KEY-----这2行复制为私钥的一部分。
请删除这两行作为私钥的一部分。

致以敬意,
菲多斯
IOSupport
https://stackoverflow.com/questions/72100029
复制相似问题