2013-08-18 3 views
0

У меня есть пример приложения (скажем, app1) с полями Username и password. Когда пользователи отправляют это значение, учетные данные должны быть проверены с помощью другой страницы входа в систему (скажем, app2), если app2 login после чего я перенаправляюсь на домашнюю страницу app1 ...PHP Cross Application Login validation

Возможно ли это через PHP?

+0

Я думаю, вы должны осуществить что-то вроде OAuth http://oauth.net/ –

ответ

1

Конечно, это так. Вам необходимо выполнить запрос curl на сайт2 с включенными данными. Затем проверьте результат. Если операция входа в систему прошла успешно, вы можете перенаправить пользователя.

//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, Я новичок в PHP, ваше объяснение выглядит хорошо .. но пожалуйста, вы можете углубиться немного дальше .. и дать мне еще несколько строк кода с комментариями! Спасибо – fishspy

+0

Да, конечно. Я добавил больше кода в свой ответ. –

+0

ОК прохладно сейчас! вы можете объяснить эту строку; curl_setopt ($ c, CURLOPT_POSTFIELDS, 'login ='. $ _ POST ['login']. '& password ='. $ _ POST ['password']); – fishspy