javascript - 从客户端隐藏 API key

标签 javascript php jquery ajax api

我正在尝试与 Zendesk 进行 API 集成。我有很多问题。你可以在下面看到我到目前为止问过的问题:

How to pass an access token in an ajax call

ZenDesk API ticket submission using Javascript - authorization

现在好消息 - 我已经在表面上工作了。但是我的 API key 在客户端 Javascript 中是公开的,我需要想办法隐藏它。这是目前我的代码的样子:

$.ajax({
        type: 'post',
        url: 'https://domain.zendesk.com/api/v2/tickets.json',
        data: {
          "ticket": {
            "subject": "new contact from " + contactEmail,
            "comment": {
              "body": contactFirstName + ' ' + contactLastName + ' ' + 'says: ' + contactMessage + contactEmail
            }
          }
        },
        beforeSend : function(xhr) {
            xhr.setRequestHeader( 'Authorization', 'BEARER (my key is here)' );
        },
        success: function(response) {
            console.log(response);
        },
        error : function(error) {
            console.log(error);
        }
        console.log('support ticket sent');
      });

我的研究使我获得了以下资源:

How to Hide an API Key in Client-Side Javascript

http://billpatrianakos.me/blog/2016/02/15/securing-api-keys-in-a-javascript-single-page-app/

Using JS/PHP/JS to hide API key

他们都认为这应该在服务器端处理。但是,我找不到任何关于如何执行此操作的明确教程。有人可以给我一个关于如何开始的想法吗?坚持了一个多星期。

最佳答案

正如某些人所提到的,您唯一可以做的就是联系一个 PHP 文件作为中间件。因此,您请求一个 PHP 文件并发送一个 cURL 请求。

客户端应用程序的问题是,客户端可以读取所有内容。因此,您唯一的方法就是使用 PHP 执行一些中间步骤。

最好的是您可以等待 cURL 响应并将响应返回给客户端。

关于javascript - 从客户端隐藏 API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45487252/

相关文章:

php - Laravel Eloquent 一对多关系不起作用

javascript - 无法通过ajax显示数据

jquery - 在 jQuery Mobile 1.3.0 中更改按钮主题

javascript - 如何为图像添加 Logo (和边框)?

javascript - 如何使文本输入不可编辑且安全?

javascript - 编写带有多层引号的 JavaScript 字符串

php - 如何显示404页面?

javascript - 当我添加处理程序时,Jquery 提交不起作用。

javascript - 为什么滚动下面的页面时会触发 mouseenter 事件?

javascript - 从工具栏的 JavaScript 中显示 FireFox 工具栏