【问题标题】:How to remove api_key from url in angularjs如何从angularjs中的url中删除api_key
【发布时间】:2017-02-25 01:43:34
【问题描述】:

我需要一个 apikey 才能向 REST api 发送 get 请求。请求看起来像这样 -

$http.get(http://api.randomsite.com/page.json?api_key=apikey123)

这将为我提供 json 格式的数据。

但出于安全原因,我不希望 api 密钥出现在 url 中。是否可以删除 api_key 并以某种方式仍然使获取请求工作?像这样——

$http.get(http://api.randomsite.com/page.json)

我读到它与标题有关,但我尝试了很多,但无法弄清楚。帮助:/

【问题讨论】:

  • 据我所知,您将无法隐藏 API 密钥。您可以做的是向您的服务器发送请求,让您的服务器使用 API 密钥作为参数向所述站点发送请求,然后将该请求的响应返回给原始请求。您可以将其隐藏为不属于 GET 请求的一部分,但几乎每个具有一点技术知识的人都能找到 API 密钥。
  • 在这种情况下你通常会POST而不是GET
  • 通过POST,您可以在正文中发送API密钥。
  • 你能用代码解释一下吗?

标签: javascript angularjs json api authorization


【解决方案1】:

好吧,如果你想隐藏 API_KEY,有几种方法可以做到这一点

  1. 通过POST 发送它,尽管这只是一半,因为任何人都可以查看POST 正文并查看它是什么。然而,你这样做的方式是通过

$http.post("api/salesapi.php/sales/", {API_KEY:xx}, {headers: ... });

  1. 让您的服务器处理它;这对用户完全隐藏了 API_KEY,让服务器充当中间人。但是,您需要一台服务器来执行此操作,因此如果您没有服务器,这是不可能的

【讨论】:

  • 我正在使用 MEAN 堆栈,所以我有一个 nodejs 服务器。你能再详细一点吗?这会有所帮助,因为我仍然很烂:(
猜你喜欢
  • 2016-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多