Php 如何验证客户端嵌入小部件或应用程序的授权

Php 如何验证客户端嵌入小部件或应用程序的授权,php,json,api,restful-authentication,hmac,Php,Json,Api,Restful Authentication,Hmac,我正在开发服务器api和客户端应用程序。我正在与客户端进行斗争,究竟是将其编码为一个应用程序放在他们的服务器上,还是嵌入iframe并托管在我们的服务器上。我需要你的洞察力 以下是我们的限制: 基于付费订阅的应用程序。我们希望授权向服务器发出的每个请求,以确保它来自付费客户的站点。目前,我们设计的API在头中接受HMAC Auth,然后将它和引用主机与数据库中的内容进行比较 API是RESTful的。我们不需要cookie或会话 授权仅针对客户托管的网站(我们的付费客户),而非其受众 发回的资源

我正在开发服务器api和客户端应用程序。我正在与客户端进行斗争,究竟是将其编码为一个应用程序放在他们的服务器上,还是嵌入iframe并托管在我们的服务器上。我需要你的洞察力

以下是我们的限制:

  • 基于付费订阅的应用程序。我们希望授权向服务器发出的每个请求,以确保它来自付费客户的站点。目前,我们设计的API在头中接受HMAC Auth,然后将它和引用主机与数据库中的内容进行比较

  • API是RESTful的。我们不需要cookie或会话

  • 授权仅针对客户托管的网站(我们的付费客户),而非其受众

  • 发回的资源(如果请求得到验证)将被嵌入到我们客户的HTML页面中

  • 我们希望尽量减少客户服务器上的代码量

  • 如果需要,我们对SSL/HTTPS和Oauth开放

  • 鉴于上述参数,您将如何处理客户端部分?我的第一个想法是开发用于生成HMAC(位于客户服务器上)的服务器代码,然后将其嵌入并传递到嵌入在其页面上的iframe


    感谢您的时间和见解

    这些问题最好在流量较大的一周内提出,为什么不像谷歌那样做呢。每个请求都添加了一个密钥。如果它是一个Javascript键,你需要做额外的源代码检查。我们计划添加api键。但是,由于我们希望确保请求仅来自付费订户站点,因此需要使用秘密私钥,即HMAC来完成。由于JS被公开,这必须在浏览器之外完成。在我的脑海中,我没有看到如何在不编写服务器上的代码的情况下将这个HMAC密钥链接到请求头中的联系。似乎必须有一种方法来处理我们服务器上的大部分代码。是的,代码需要在远程(源)端。