Codeigniter,Restful API和如何使用密钥

spr*_*man 8 php api rest codeigniter restful-authentication

我正在使用Phil Sturgeon和Chris Kacerguis Restful服务器(访问https://github.com/chriskacerguis/codeigniter-restserver)并对使用API​​ KEYS有一般性问题.我是API和概念的新手.

KEYS如何工作?有一个名为KEYS的表定义如下:

| 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;
Run Code Online (Sandbox Code Playgroud)

类中有一些名为KEYS的方法如下:

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.
Run Code Online (Sandbox Code Playgroud)

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

从我的阅读中,听起来我为应用程序生成了一个初始的X-API-KEY,然后当客户端使用资源时,我会使用KEYS类将X-API-KEY换成另一个键.我也会删除它,但什么时候?......或者我在理解中搞砸了?

tsh*_*kus 1

这里有很多好问题。

“KEYS 是如何工作的?”

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

“为什么会有删除方法?”

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