首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Firebaseapperror:解析私钥失败:错误:无效的pem格式化消息

Firebaseapperror:解析私钥失败:错误:无效的pem格式化消息
EN

Stack Overflow用户
提问于 2021-12-08 20:10:37
回答 2查看 2.3K关注 0票数 1

当我将nodejs应用程序推到heroku时,我得到了这个错误firebaseapperror: failed to parse private key: error: invalid pem formatted message

我的环境变量都是这样设置的

代码语言:javascript
运行
复制
# .env file
    
project_id=project_id
private_key='-----BEGIN PRIVATE KEY----- ... ------END PRIVATE KEY-----\n'
client_email=client_email

访问它们的方式如下:

代码语言:javascript
运行
复制
export const sa = {
    privateKey: process.env.private_key,
    projectId: process.env.project_id,
    clientEmail: process.env.client_email
};

在我的本地,一切都很好,但在生产(heroku)我得到了上面提到的错误。私钥是一个多行环境变量,无法解析。

拜托,我该怎么解决这个问题?

EN

回答 2

Stack Overflow用户

发布于 2021-12-08 20:10:37

The Fix

我是如何通过我在网上看到的一篇文章来修正这个问题的:如何在环境变量中存储长的多行私钥

按照这个步骤,您也应该修复这个步骤。

文章的简要摘要是:

将长的多行键存储为json字符串,如下所示:

代码语言:javascript
运行
复制
# .env file

project_id=project_id
private_key='{"privateKey": "-----BEGIN PRIVATE KEY----- ... ------END PRIVATE KEY-----\n"}'
client_email=client_email

然后解析它并按如下方式对键进行重构:

代码语言:javascript
运行
复制
const { privateKey } = JSON.parse(process.env.private_key);

export const sa = {
    privateKey,
    projectId: process.env.project_id,
    clientEmail: process.env.client_email
};

这将适用于本地,但是on production (heroku)您将得到一个解析错误,因为单引号在所讨论的密钥之前和之后都会出现。因此,在生产env变量中的键之前和之后删除单引号。我还尝试了没有,没有单引号,在本地和,它的工作

额外利益

使用此方法额外的好处

这样,您甚至可以将整个环境变量存储为一个对象,如下所示

代码语言:javascript
运行
复制
# .env file

sa='{"privateKey": "-----BEGIN PRIVATE KEY----- ... ------END PRIVATE KEY-----\n", "clientEmail": "client_email", "projectId": "project_id"}'

然后像这样访问它:

代码语言:javascript
运行
复制
export const sa = JSON.parse(process.env.sa);

就这样。

提醒:记住我对单引号说过的话!

票数 9
EN

Stack Overflow用户

发布于 2022-11-20 12:21:23

或者,去掉围绕private_key的单引号/双引号解决了我的情况。可以将prod env变量中的私钥设置为:

代码语言:javascript
运行
复制
-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70281140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档