2013-08-18 3 views
0

사용자 이름과 암호 필드가있는 샘플 응용 프로그램 (app1)이 있습니다. 사용자가 값을 제출하면 자격 증명을 다른 웹 사이트 로그인 페이지 (예 : app2)로 확인해야합니다. app2 로그인 성공하면 app1의 홈 페이지로 리디렉션됩니다 ...PHP 교차 응용 프로그램 로그인 확인

PHP를 통해 가능합니까?

+0

나는, 나는 새가 PHP에, 당신의 설명이 좋아 보인다 나는 당신이 OAuth를 http://oauth.net/ –

답변

1

물론입니다. 데이터가 포함 된 site2에 컬 요청을 실행해야합니다. 그런 다음 결과를 확인하십시오. 로그인 작업이 성공하면 사용자를 리디렉션 할 수 있습니다.

//You have recived username and password in post method, now it is time to log user in site2 
$c = curl_init(); 
curl_setopt($c, CURLOPT_URL, 'http://example.com/login.php'); 
curl_setopt($c, CURLOPT_POST, 1); 
curl_setopt($c, CURLOPT_POSTFIELDS, 'login='.$_POST['login'].'&password='.$_POST['password']); 
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($c, CURLOPT_COOKIEFILE, 'full path cookie.txt'); 
curl_setopt($c, CURLOPT_COOKIEJAR, 'full path cookie.txt'); 
$page = curl_exec($c); 
curl_close($c); 

//If he typed in wrong password, on site2 should be some error. 
$error_text = 'Incorrect login or password'; //Text that will show on site after unsuccessful login attempt 

//Check if is there any error on site2 
if (strpos($page, $error_text) !== false) { 
    header('Location: http://www.example.com/'); //Everything seems to be ok, when do you want to redirect user? 
} else { 
    echo 'You typed in incorrect username or password';  
} 
+0

안녕하세요 Helid 같은 것을 구현해야한다고 생각 ...하지만 당신은 조금 더 탐구하십시오 수 있습니다 .. 및 제공 코멘트와 함께 더 많은 코드 라인! 감사합니다 – fishspy

+0

물론, 그렇습니다. 내 대답에 더 많은 코드를 추가했습니다. –

+0

지금 괜찮습니다. pl이 줄을 설명 할 수 있습니까? curl_setopt ($ c, CURLOPT_POSTFIELDS, 'login ='. $ _ POST [ 'login']. '& password ='. $ _ POST [ 'password']); – fishspy