首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeJS/Heroku应用程序错误用于读取Github操作的env变量

NodeJS/Heroku应用程序错误用于读取Github操作的env变量
EN

Stack Overflow用户
提问于 2020-10-09 12:31:07
回答 1查看 182关注 0票数 1

最初,我有一个工作的git和一个工作流设置,以便将一些NodeJS源代码上传到一个git push请求上,这一切都很好。但是,我有一个.env文件中的蒸汽API密钥,我不想公开它(完全删除.env ),所以我想使用Github将STEAM_API_KEY (以及其他变量,例如BASE_URL)存储在yml工作流中,如下所示:

代码语言:javascript
复制
jobs:
  test:

    runs-on: ubuntu-latest
    
    env: 
      BASE_URL: ${{ secrets.BASE_URL }}
      STEAM_API_KEY: ${{ secrets.STEAM_API_KEY }}

    steps:
      - name: Checkout Repo v2
        uses: actions/checkout@v2
      
      - name: Use Node.js 14.x
        uses: actions/setup-node@v1
        with:
          node-version: 14.x
          
      - name: Running CI Installation
        run: npm ci
      - name: Running Application/Server Unit Tests
        run: npm test

我用process.env.<variable_name>在代码中访问了它们(下面是How can I use Github secrets in JS files):

代码语言:javascript
复制
module.exports = new SteamAuth({
    realm: `${process.env.BASE_URL}/steam/user/auth`,
    returnUrl: `${process.env.BASE_URL}/steam/user/auth`,
    apiKey: process.env.STEAM_API_KEY
});

但是让我在Heroku身上犯了这个错误:

错误:缺少领域、returnURL或apiKey参数。这些都是必需的。

如果我直接将字符串硬编码到领域returnUrlapiKey中,则不会发生这种情况。

在进一步排除故障后:

代码语言:javascript
复制
    var url1 = `${process.env.BASE_URL}/steam/user/auth`; // BASE_URL = "https://<app_name>.herokuapp.com"
    var url2 = "https://<app_name>.herokuapp.com/steam/user/auth";

    console.log(url1 === url2);
    console.log(url1);
    console.log(url2);

产出:

代码语言:javascript
复制
true
***/steam/user/auth
***/steam/user/auth

url1已经加密了process.env.BASE_URL。但是url2也会被加密,因为它类似于BASE_URL?这是Github行动的缺陷吗?

在这一点上,我没有想法了。我做错了什么,但不知道从这里往哪里走。有人知道如何在.js代码中正确地使用Github秘密吗?

PS:Github秘密/工作流对我来说是非常新的,请原谅我缺乏知识/理解。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-09 13:05:39

我发现了这个问题: env变量只有在运行操作时才可用,而不是在Heroku执行时使用

仍然没有解释url2的最后一部分

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64280116

复制
相关文章

相似问题

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