2012-11-27 121 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之前有​​。