验证对API的访问权限

时间:2013-02-06 15:00:40

标签: php javascript api

我正在尝试制作我的第一个API,我之前从未做过API。我确实阅读了几篇文档,但找不到足够简单的内容来描述身份验证过程。

如何通过API对用户进行身份验证?比如我如何给应用程序开发人员一个方法,以便他们创建一个登录表单,授予他们的用户访问我的数据库中的信息,并让我根据登录的用户提供数据。

我对通过API验证用户的想法感到困惑,他们如何安全地发送密码?

2 个答案:

答案 0 :(得分:2)

当你在谈论PHP和javascript我假设你在谈论HTTP(REST)api。 在那种情况下,我几乎总是争论使用标准的HTTP身份验证。 这将发送在BASE64中编码的用户名和密码。这可能看起来是加密的,但正如名称所示,它只是一种编码。因此它不安全。 如果您想要安全,我强烈建议您使用HTTPS。

看看:

HTTP Auth in PHP

Relevant Standard

编辑:根据要求提供有关其工作原理的简短摘要。标准描述的长(并且有点难以阅读),服务器可以请求客户端进行身份验证。然后,客户端将用户名和密码(用户名:密码的基本64编码版本)发送到服务器。 由于这个基本的HTTP身份验证在标准中被指定,因此它得到了广泛的传播,并且几乎每种语言都有大量的库。但是,如前所述,我强烈建议将其与HTTPS一起使用。 否则它只会将用户的密码暴露给互联网。

虽然我非常支持使用标准HTTP身份验证,但您可能还希望了解其他概念:OAuth,apikeysAmazon Stuff

答案 1 :(得分:2)

也许你应该看看oauth,这就是推特的工作方式,例如。