2012-02-22 2 views
1

으로 응답 보내기 사용자 이름과 암호를 PHP 스크립트로 보내는 iPhone 앱을 만들면 php 스크립트는 값을 mySQL 데이터베이스에서 찾고 부울 값을 0 또는 1로 설정합니다. 사용자의 인증 여부에 따라 어디서부터 시작해야할지, 심지어 Google에서 어떻게해야 하는지를 모릅니다.PHP 스크립트에서 iOS

가능합니까? iOS 앱에서 사용자를 인증하는 적절한 방법입니까?

감사합니다.

+1

당신이 HTTPS를 사용하여 일반 텍스트로 사용자 이름/암호를 전달하지 않는 경우 예,이 작업을 수행 할 수 있습니다, 심지어 상대적으로 안전 할 수 있습니다. 그러나 당신의 질문은 무엇입니까? 백엔드 서버 프로그램을 작성하는 방법은 무엇입니까? –

+0

글쎄, 사용자 이름과 암호를 PHP 스크립트로 보내는 iOS 부분이 있습니다. 그런 다음 스크립트는 내 데이터베이스에 연결하여 그 값이 존재하는지 살펴볼 수 있습니다. 올바른 사용자 이름/암호를 찾으면 부울을 설정하거나 DB의 계속됩니다 ... 그래서 모든 작업이 완료되었습니다. DB에 username/password가 있는지 여부를 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 응답으로 반환됩니다. 의미있는 것을 단순히 출력하고 클라이언트에서 읽으십시오.

<?php 

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

echo $authentication; 

?> 

전화 예를 들어 NSURLRequest 객체를 사용하여 아이폰 OS에서이 스크립트를

+0

iOS 앱이 해당 정보를 사용하거나 읽는 방법을 알고 있습니까? – thebiglebowski11

+0

아니요. 하지만 HTTP가 어떻게 작동하는지 압니다. –

0

는이 같은 PHP 스크립트를 작성할 수 있습니다.

P.S .: 그러나 클라이언트와 서버 간의 데이터 교환을 위해서는 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

관련 문제