首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Wordpress PHP文件中隐藏外部API密钥?

如何在Wordpress PHP文件中隐藏外部API密钥?
EN

Stack Overflow用户
提问于 2022-01-20 11:00:34
回答 1查看 616关注 0票数 1

我花了几个小时试图研究和解决这个问题,但不幸的是,我仍然在挣扎。

我已经创建了一个自定义的‘课程’文章类型在Wordpress,其中涉及使用嵌入式Calendly事件注册。当事件注册发生时,我正在使用Calendly到通知父窗口。通知有效负载提供事件的URI,然后使用Calendly查找该事件,并返回事件的名称。我很难将API密钥隐藏在标题中:

代码语言:javascript
复制
    "Content-Type": "application/json",
    "Authorization": "Bearer MY_API_KEY"
  }

我尝试在wpconfig中添加一行来定义键:

代码语言:javascript
复制
define( 'CALENDLY_KEY', '**key**' );

但我不知道如何在我的函数中使用它,而不通过“echo”公开它。

如有任何建议,将不胜感激。

扩展代码如下:

代码语言:javascript
复制
<!-- Calendly widget script -->
<script type="text/javascript" src="https://assets.calendly.com/assets/external/widget.js" async></script>

<script>function isCalendlyEvent(e) {
  return e.data.event &&
         e.data.event.indexOf('calendly') === 0;
};
 
window.addEventListener(
  'message',
  function(e) {
    if (isCalendlyEvent(e)) {
        if (e.data.event == "calendly.event_scheduled") {
            console.log("event scheduled!");
            let event_uri = e.data.payload.event.uri;
            console.log(event_uri);

            fetch(event_uri, {
  "method": "GET",
  "headers": {
    "Content-Type": "application/json",
    "Authorization": "Bearer MY_API_KEY"
  }
})
.then(response => response.json())
  .then((json) => {
    console.log(json);
    let ordered_course = json.resource.name;
    console.log(ordered_course);

  })



        }
      console.log(e.data);
    }
  }
);</script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-21 22:32:20

您应该使用dotenv (.env)文件作为API密钥。

您可以通过服务器上带有的.env包安装对dotenv ( 维卢卡/波多腾 )的支持。

更简单的选择--如果你没有像你说的那样有经验的话,你可以使用一个WordPress插件唐滕诺夫,你将创建一个.env文件,然后在你的代码中,你可以使用getenv(‘MY_API_KEY’)检索这个.env键;

这是针对PHP的,但是您的代码是JS,所以您应该安装npm包管理器,然后运行npm i dontenv,然后在代码Bearer ${process.env.MY_API_KEY}中运行。

另外,.env文件不应该上传到GitHub上。

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

https://stackoverflow.com/questions/70785007

复制
相关文章

相似问题

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