如何在CI中为Android应用程序创建安全API

时间:2017-10-11 04:47:09

标签: php api codeigniter

我在我的网站上使用Codeigniter。我如何为移动应用程序创建webservice。 我已经从GIT实现了Phill Sturgeon CodeIgniter RESTServer库,但我没有找到如何在我的API中添加安全性KEY。

1 个答案:

答案 0 :(得分:0)

您必须配置它并创建数据表。我个人在rest config中使用此配置。

  

$ config ['rest_default_format'] ='json';
  $ config ['rest_auth'] ='摘要';
  $ config ['rest_realm'] ='Your_realm';
  $ config ['auth_source'] ='图书馆';
  $ config ['allow_auth_and_keys'] = TRUE;

     

$ config ['auth_library_class'] ='Someclass';
  $ config ['auth_library_function'] ='某些功能';

如果您使用这种身份验证,您必须创建一个库和一个方法,它将在数据库中查询收到的用户和密码,并返回类似md5(用户名)的内容:md5(密码);

此外,您需要将.htaccess设置为接受此类http标头。

  

RewriteRule。* - [E = HTTP_AUTHORIZATION:%{HTTP:授权}]

另外,您的API安全密钥只是您生成的字符串。库会自动从您的密钥表中搜索它,但您必须创建它并在其余配置中启用它

  

$ config ['rest_keys_table'] ='钥匙';
  $ config ['rest_enable_keys'] = TRUE;

密钥表模式:

  

创建表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,
  |主要关键(id
  | )ENGINE = InnoDB DEFAULT CHARSET = utf8;