【问题标题】:Accessing Azure Application Settings with JavaScript使用 JavaScript 访问 Azure 应用程序设置
【发布时间】:2020-09-17 09:25:07
【问题描述】:

我正在使用 Microsoft Azure 托管我的网站。我已经为我正在做的一些 GET 请求设置了一些应用程序设置(应该充当环境变量)和 ClientID。我花了过去 3 个小时在谷歌上搜索试图找到解决方案。根据 Azure 的文档,我需要使用 process.env.KEY,但这不起作用。完成后,我在网站的控制台中收到此错误jQuery.Deferred exception: process is not defined ReferenceError: process is not defined

我找到的所有东西都是 Node.js,但我不使用它。我的网站是纯 HTML、CSS 和偶尔的 JavaScript 脚本。任何人对我有任何答案可以让我走上正确的道路或帮助我彻底解决问题?

编辑:这是我的 script.js 的代码

$(document).ready(function() {
  //  $(window).scroll(function(){
  //    if(this.scrollY > 20){
  //      $(".menu").addClass("sticky");
  //    }
  //    else {
  //      $(".menu").removeClass("sticky");
  //    }
  //  });

  $('.menu-toggler').click(function() {
    $(this).toggleClass("active");
    $(".menu-menu").toggleClass("active");
  });

  // Check if streamer is live on twitch
  const Url = 'https://api.twitch.tv/helix/streams?user_login=pokimane';
  $.ajax({
    url: Url,
    type: "GET",
    success: function(result) {
      var json = JSON.stringify(result);
      if (json.includes('"type":')) {
        $(".twitch").addClass("live");
      };
    },
    error: function(error) {
      console.log(`Error ${error}`)
    },
    isLocal: true,
    jsonp: true,
    headers: {
      'Client-ID': process.env.CLIENT_ID,
      'Authorization': `Bearer ${process.env.CLIENT_AUTH}`,
      'accept': 'application/vnd.twitchtv.v5+json',
    }
  });
});

【问题讨论】:

  • 您的问题解决了吗?有进展吗?
  • @JasonPan 我完全忘记了这一点,因为在这方面没有任何进一步进展后,我离开了 Azure。不过感谢您的帮助,非常感谢。

标签: javascript html css azure


【解决方案1】:

最新

这个api需要在请求中添加熊令牌。

根据你的描述,你的项目只有html+js,本来就是静态资源,硬编码肯定会造成安全问题。但是现在使用rest api 会更安全。

由于首先需要获取熊通证,所以具体需要参考官方文档。

Microsoft identity platform and OAuth 2.0 authorization code flow

如果您想对项目进行最少的更改,您可能需要使用 ROPC 流程。 You can refer my another in another post.

私人

您可以使用rest api获取应用程序设置。

HTML 中的 JavaScript 脚本不支持节点使用。 process.env.CLIENT_ID 的语法适用于完整的 nodejs 项目。建议使用restapi来获取你想要的应用设置的值。

我在门户中的自定义设置。

您可以访问此站点。 Web Apps - List Application Settings.

【讨论】:

  • 太好了,我还没有偶然发现。但这有多安全?因为据我所知,我必须存储我的应用程序的名称和那些硬编码到我的应用程序中的东西,以使用它们访问环境变量以供我的网站使用。然后将这些东西硬编码到我的网站中,人们就可以抓取 POST 等,并通过它抓取我的环境变量。
  • @TheBrohman 我更新了我的答案,这应该是最安全的方法。
  • @TheBrohman 如果你通过了微软认证服务并且不安全,应该没有更好的解决方案。
  • @TheBrohman 或许如果你真的想对数据保密,建议在获取应用程序设置的值后,md5加密保存在localstorage中,使用后清除localstorage中的值。这只是一个想法,希望对你有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-07
  • 2021-04-23
  • 2010-09-05
  • 2016-11-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多