将AngularJS限制用于一个域

时间:2015-09-29 08:11:09

标签: php angularjs api oauth jwt

我正在编写一个与php api对话的AngularJS应用程序。 有没有办法阻止用户直接进行api调用,而无需通过位于某个特定域的Angular应用程序。 因此,他们必须访问我的域,angularjs所在的域,并且只通过Angular应用程序调用api。 我知道,因为它的客户端所有代码都是可检查的。 我的应用程序有一个公共部分,以及只有在用户登录后才能使用的部分。 因此,我可以在用户登录后通过OAuth或JWT轻松保护呼叫,但我希望保护整个事情,包括不需要用户登录的公共部分。

这实际上可行吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

不,最终不是。 公共 API public 。它接收HTTP请求并返回HTTP响应。 HTTP请求没有上下文。您想要限制的是,只有当前打开您的特定网站的客户才可以向您发送这些特定的HTTP请求。那是胡说八道。无论客户端当前正在进行什么操作,HTTP请求都是HTTP请求。

是的,您可以检查Referer标头,但这只是一个任意人可以手动添加到其请求中的任意HTTP标头。

以不同的方式看待它:如果您编写的网站不使用Angular和单独的数据API,但返回旧的HTML页面会怎么样?您是否需要只有特定的人才能看到HTML?你不能。这是胡说八道。仅仅因为您以不同方式打包数据传输并不会改变它。