在多个服务器中验证RESTful API

时间:2015-06-24 12:36:42

标签: php api rest authentication

在开始之前,我想告诉我,我是构建RESTful API的新手,也从未处理任何身份验证。

我想设置一个主服务器,它将从客户端获取API请求(让服务器IP /域为api.example.com)。我希望能够使用POST请求使用API​​密钥将文件发送到服务器。有什么方法可以验证主服务器中的API密钥,然后再根据API密钥将文件从那里发送到另一台服务器(如两个类别0和1)

如果该文件在客户端服务器上公开可用,如果我只是将url发送到主服务器并将其传递到第二台服务器然后在那里下载文件,这是否合适?完成后,客户端还必须使用GET请求。

我正在考虑在主服务器上使用wordpress来简化注册(编写一个插件来为每个用户生成api)。这是个好主意吗 ?

我见过这个:Web API creating API keys

但客户端将是公共的(我将编写的所有客户端服务都是开源的,并且api本身是开放的,供开发人员根据自己的需要进行开发。)所以我想用任何方法散列密钥都可以因为它是公开的,所以逆转了。我只想使用一个大约30个字符的单个API密钥及其电子邮件,并将其与主服务器匹配。

修改

我刚想出了什么,但我不知道这是不是一个好策略。如果我可以要求用户添加将发出请求的域,然后只有一个API密钥并将其发送到服务器,那么服务器可以在APIKey和域之间匹配,如果列出,则继续POST。

1 个答案:

答案 0 :(得分:0)

您可以使用HTTP标头来实现身份验证。通常,用户将对包含发布给它们的API密钥的AUTH Header进行base64编码。服务器应用程序将从它接收的HTTP请求中解码此API密钥,并从数据源执行查找以验证密钥。