2012-11-27 58 views
0

的网络服务。 另一个团队为iPhone做手机版。 所以其他团队要求我做一个Web服务进行认证。 他们知道他们会送我:使用CodeIgniter 1.7框架创建我的网站CodeIgniter

POST REQUEST 
Input : login , password, push_token 
if failure authentification -> Output HTTP : error code 0 
if success -> Output XML : 
<DATA> 
<User id='id_user' title='..' first_name='' last_name='' email='' postal='' country_id=''/> 
</DATA> 

基本上我有这个功能认证:

function check_login($username="", $password="") 
{ 
$username = $_POST['username']; 
$password = $_POST['password']; 
... 
... 
} 

即时寻找到这个职位Codeigniter web services,但我不明白它到底是如何,因为即时通讯新工作在web服务。

回答

2

你应该肯定考虑菲尔鲟鱼笨其余服务器:

https://github.com/philsturgeon/codeigniter-restserver

有一个相当不错的文档。他还做了一个关于它的截屏:http://philsturgeon.co.uk/blog/2011/03/video-set-up-a-rest-api-with-codeigniter

此外,你可以看看这篇文章,亚当惠特尼解释他的做法:

构建一个RESTful服务使用CodeIgniter的

http://adamwhitney.net/blog/?p=707

+0

感谢张贴adam whitney tut – cartalot

4

我会考虑使用json作为唯一的输出,其中一个值为TRUEFALSE取决于成功。它更容易处理,而且它只需要你的网站在utf8中。

如果您的check_login()返回TRUE,请将其用作成功的条件。回复

例子:

/* Class etc. */ 

function do_login() { 
    $arr_json = array('success' => FALSE); 
    if ($this->login_library->check_login()) { 
     $arr_json['success'] = TRUE; 
     $arr_json['user_id'] = $this->login_library->user_id; 
    } 
    echo json_encode($arr_json); 
} 

login_library是只为你的库,不登录的例子。他们收到的回复只需要通过json_decode()解码。然后,只需检查密钥success是否为TRUE

如果需要,可以使用一个名为error_message或类似的额外键,并且您可以通过form_validation运行所有后值。那么你也可以在echo之前有​​。