jos*_*ose 11 rest codeigniter restful-authentication
我正在使用Phil Sturgeon Rest Server编写一个简单的RESTful服务.我想通过使用此库提供的API密钥来保护我的方法.
不幸的是,这并没有很好的记录,我有点迷失.
我想验证用户(电子邮件/密码),然后生成一个auth密钥以发送每个其他请求.但似乎我已经需要auth密钥来生成一个...创建一个虚拟密钥似乎不太安全.对不起,如果这是一个愚蠢的问题,但最佳做法是什么?
Mic*_*sky 13
如果您熟悉其他API,您会发现一种常见的模式.我建议使用身份验证方法,用户传递其电子邮件和密码,这将返回生成的唯一身份验证密钥.身份验证密钥就像一个会话ID,想一想cookie是如何工作的.然后,所有其他的API方法应该检查这 - $>后("权威性"),你需要与你的会话处理器(例如数据库或会话)来比较这,你处理每个请求之前.
好像很多代码吧?不.
你的所有模型都应该有一个重载的构造函数:
class MyAPIController extends Rest_controller
{
public function __construct()
{
parent::__construct();
if(!authCheck($this->post('auth'))){
returnFailedResponse();
exit();
}
}
Run Code Online (Sandbox Code Playgroud)
然后正常写API,就像Phil Sturgeon网站上的例子一样. http://net.tutsplus.com/tutorials/php/working-with-restful-services-in-codeigniter-2/
请有authCheck测试的权威性关键是有效的,并进行了方法returnFailedResponse返回一个401未授权的模式.
在另一个控制器中,我们称之为'Auth',使用上面的构造函数.
现在每次调用你的api都应该为Auth设置一个标题.防爆.'Auth:12m34k23b'.