angularjs – Angular – 看不到如何隐藏此API密钥

前端之家收集整理的这篇文章主要介绍了angularjs – Angular – 看不到如何隐藏此API密钥前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的角度应用声明中有以下代码 – Facebook的API密钥(实现Share按钮):
.run(function($FB){
  $FB.init('9xxxxxxxxxxxx94');
})

所以我知道对此的一般答案 – ‘API密钥应保留在服务器端’,但是我不知道我是如何实现这一点的.

共享调用方法是在前端进行的,所以即使我的服务器保留了API密钥并发送它,肯定它仍然在前端可见,否则共享按钮如何工作?

所以我的问题是,如何隐藏Facebook API密钥?

谢谢.

请求密钥

首先发生的是客户端将请求密钥.这只会发生在某些页面上,例如注册登录页面.这里的想法是,我们希望确保只允许使用已知客户端(在这种情况下是官方网站或核心客户端)浏览的用户采取创建或验证用户等操作.

因此,当客户端应用程序请求登录页面时,服务器会根据请求中发送的信息生成唯一令牌.使用的信息总是服务器知道的东西,客户知道的东西,以及两者都知道的东西.因此,例如,服务器可以基于用户代理当前时间密钥生成唯一密钥.服务器根据此信息生成散列,然后在客户端计算机上存储仅包含散列的cookie.

设置权限

在这一点上,我们的钥匙真的不再是钥匙了.它已被转换为访问令牌.然后,服务器应该获取此访问令牌并将其存储以供以后检索.您可以将密钥放在数据库中,但由于需要经常检索此类型的数据,我建议使用像Redis这样的键值存储来减少数据库读/写并提高性能.

存储令牌时,还应存储单独的数据,以指示与令牌关联的权限.在这种情况下,我们的令牌仅作为注册和验证用户的方式,因此我们将其存储在一个值旁边,该值指示令牌所属的人(应用程序的Web UI)以及它具有的权限(仅限于创建和验证用户) .我们对待它就像我们任何其他API客户端一样,我们可以捕获统计信息并控制它的使用方式.

授权请求

当客户端发出POST请求以创建新用户登录服务器时,将检查客户端是否发送了识别cookie以及请求.如果没有,我们拒绝该请求.如果确实发送了cookie,服务器应该再次使用之前使用的值生成哈希值(这些值已经是已知的或者随请求一起发送,因此我们并没有真正对服务器征税)将它与cookie进行比较发送给我们,如果值匹配允许请求继续.

Sources – Securing API Keys

要么

只需向您的服务器发送请求,让他使用隐藏的API密钥处理您的请求,并将您的请求结果返回给您的前端.

原文链接:https://www.f2er.com/angularjs/240617.html

猜你在找的Angularjs相关文章