Codeigniter,Restful API & 如何使用密钥

Codeigniter, Restful API & How to use Keys

我正在使用 Phil Sturgeon 和 Chris Kacerguis Restful 服务器(访问这里 https://github.com/chriskacerguis/codeigniter-restserver)并且有一个关于使用 API KEYS 的一般性问题。我对 APIs 和这些概念很陌生。

KEYS 是如何工作的?有一个叫做KEYS的table定义如下:

| Default table schema:
|   CREATE TABLE `keys` (
|       `id` INT(11) NOT NULL AUTO_INCREMENT,
|       `user_id` INT(11) NOT NULL,
|       `key` VARCHAR(40) NOT NULL,
|       `level` INT(2) NOT NULL,
|       `ignore_limits` TINYINT(1) NOT NULL DEFAULT '0',
|       `is_private_key` TINYINT(1)  NOT NULL DEFAULT '0',
|       `ip_addresses` TEXT NULL DEFAULT NULL,
|       `date_created` INT(11) NOT NULL,
|       PRIMARY KEY (`id`)
|   ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

在名为 KEYS 的 class 中有如下方法:

index_put() // key created.  builds a new key.
index_delete() // Remove a key from the database to stop it working.
level_post() // Update Key. Change the level.
suspend_post() // Update Key.  Change the level.
regenerate_post() //   Regenerate key.  Remove a key from the database to stop it working.

由于这个包没有很好的文档记录,而且我是 API 的新手,以上是如何工作的?例如,我是否生成 1 个密钥并将其永久插入到数据库中。为什么会有删除方法?

根据我的阅读,听起来我为应用程序生成了一个初始 X-API-KEY,然后当客户端使用资源时,我会将 X-API-KEY 交换为另一个键使用 KEYS class。我也会删除它,但是什么时候? ...还是我的理解全搞砸了?

这里有很多好问题。

"How do KEYS work?"

RESTfulAPI 服务可以为许多不同的用户提供服务,因此 API 密钥是一个单独的密钥,用于授予对 REST API 的访问权限。这允许服务管理员授予或撤销对不同用户的访问权限或修改授予每个用户的权限。

"Why is there a delete method?"

这是为了撤销对特定密钥的 API 访问权限。使用它的原因可能有很多。也许 API 用户违反了服务条款,或者如果它是付费服务,则可能他们的订阅已结束或被撤销。它允许管理员取消用户对 API 服务的访问。这也应该回答你 "when?"

的问题