2012-02-22 9 views
1

私は、ユーザー名とパスワードをphpスクリプトに送信するiPhoneアプリケーションを作成しています。その後、phpスクリプトはmySQLデータベースで値を探し、ブール値を0または1に設定しますユーザーを認証する必要があるかどうかによって異なります。私は実際にどこから始めたいか、あるいはGoogleがこれをどうやって調べるべきかを全く知らない。PHPスクリプトからiOSに応答を送信

これは実現可能ですか? これはiOSアプリでユーザーを認証する適切な方法ですか?

ありがとうございます!

+1

はい、これを行うことができますが、HTTPSを使用してクリアテキストでのユーザ名/パスワードを渡さない場合は、それも比較的安全かもしれません。しかし、あなたの質問は何ですか?バックエンドサーバープログラムを構築する方法は? –

+0

私は、PHPスクリプトにユーザー名とパスワードを送信するiOSの部分が完了しました。スクリプトはそれから私のデータベースに接続し、それらの値が存在するかどうかを調べることができます。いったん正しいユーザー名/パスワードが見つかると、それはブール値を設定するか、DBのそれまで続きます。私は、認証ブールを返信して、ユーザー名/パスワードがDBに存在するかどうかをiOSアプリに伝える方法を知る必要があります。 – thebiglebowski11

+0

あなたが使用するテクノロジー(PHP/MySQLまたはJAVA/MySQLまたはPHP/PostgreSQL)にかかわらず、一般的に、手順は正しいです。あなたは常にクライアント(あなたの場合はiPhone)とサーバーとの間の通信が必要です。 – bitfox

答えて

1

これを達成するためのさまざまなタイプがあります。

a)PHPでXMLまたはJSONファイルを生成し、iOSでそのコンテンツを読み込みます。 (このメソッドを使用すると、必要に応じて余分なデータを取得できます)。

b)PHPからHTTPヘッダー()を送り返し、HTTP応答コードを読み取ります。このようなことをすることができます。

function checkLogin() 
{ 
    //Check login 
    if($login == true) { 
     header('HTTP/1.1 200 OK'); 
    } else { 
     header('HTTP/1.1 401 Unauthorized'); 
    } 
} 

c)にすることはできPHPで何も出力(プレーンテキスト、JSON、HTMLなど)、PHPで生成された出力は、HTTPレスポンスとして受信されるように。

+0

「1」を取得したければ、または '0'を出力し、それに付随するすべてのhtmlではなく、1(または0)を別の場所に書き込む必要がありますか? – thebiglebowski11

0

PHPスクリプトが出力するものはすべて、HTTP応答として返されます。意味のあるものを単に出力して、クライアントでそれを読んでください。

+0

iOSアプリがその情報をどのように使用するのか、それともそれを読むことさえ知っていますか? – thebiglebowski11

+0

しかし、私はHTTPの仕組みを知っています。 –

0

あなたは、このようなPHPスクリプトを書くことができます。

<?php 

// the authentication procedures memorized in the $authentication variable the result of authentication process. Supposed to be 1 if successful 

echo $authentication; 

?> 

は、例えばNSURLRequestオブジェクトを使用してのiOSからこのスクリプトを呼び出します。

P .:しかし、クライアントとサーバーの間でデータを交換するには、JSON形式を使用する必要があります。

0

最も簡単な解決策は、HTTPステータスコードを使用することです。その後、あなたは応答のボディについて気にする必要はありません。

If authenticated: "HTTP 200 OK" 
If unauthorized: "HTTP 401 Unauthorized" 

リソース:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

+0

iPhoneアプリはどのようにこれらのコードを表示しますか? – thebiglebowski11

+0

いいえ、それは私がサーバー側でそれを行う方法です。 – CodeZombie

関連する問題