【问题标题】:PHP RESTful API to accept authentificationPHP RESTful API 接受认证
【发布时间】:2011-12-22 13:50:03
【问题描述】:

我正在开发一个 PHP REST API。我想需要用户密钥才能访问 API。我不知道该怎么做,我是否只是发出一个密钥并让他们在每个 API 请求上以POSTGET 发送它?如果可以的话,请帮助我用最简单的术语解释一下,我知道这是很多人想做的事情,它让很多人感到困惑,而不仅仅是我自己。

我还希望能够限制使用,我正在考虑将每个命中存储在 MySQL 数据库中,甚至存储在内存中。我刚刚在 Github API 请求的标头中看到了这个 X-RateLimi-Limit 5000X-RateLimi-Remaining 4996 每次命中数字减 1,这是某种内置限制器吗?

【问题讨论】:

标签: php rest restful-authentication


【解决方案1】:

只需要求客户在您的网站上注册, 在您的 CLIENTS 表中创建一条记录,给他们一个唯一的、不容易猜到的 id 然后每个 api 访问都要求该 id 包含在请求中,在标头中的 GET 或 POST 中。

对每个请求进行验证,如果 id 不存在或无效则返回错误代码。

对于速率限制,您是正确的,您需要有一个单独的表来存储每个客户端的请求计数,然后使用 X-RateLimit 计数器生成这些响应标头。

真的没那么难。

我为我的项目编写了一个 API,欢迎您查看源代码,它在 Api 文件夹中,here https://github.com/snytkine/LampCMS/tree/master/lib/Lampcms/Api/

API 调用的入口点是这个 https://github.com/snytkine/LampCMS/blob/master/www/api/api.php

添加新应用的网址是: http://support.lampcms.com/index.php?a=editapp

【讨论】:

  • 谢谢,你的github代码对事情的流程很有帮助
  • 请注意,查看您的 LampCMS 代码库,这可能是我 10 年来见过的最好的 PHP 项目,令人印象深刻!
  • @CodeDevelopr 谢谢。有一天,当我有时间时,我真的想使用 Java Spring 3 重写 API。他们让设计 RESTful API 变得如此简单,而且它的效率可能甚至比使用 APC 的最新 php 还要高几倍。我也会把它开源的原因
猜你喜欢
  • 2011-04-01
  • 2015-11-05
  • 2018-12-19
  • 2017-02-24
  • 1970-01-01
  • 2017-07-15
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
相关资源
最近更新 更多