2010-06-18 2 views
0

Мне было предложено создать автономный webapp, используя «прямой» HTML и Javascript, который выполняет аутентификацию пользователя в отношении существующего PHP-приложения (бэкэнд - MySQL). К сожалению, я действительно не понимаю, как работает PHP-аутентификация, и я бы предпочел не вкладывать много времени в изучение PHP только для этого конкретного случая.Как использовать аутентификацию на основе PHP из приложения AJAX, отличного от PHP?

Я вижу два possibilites до сих пор

1) создать PHP обертку вокруг моего нового приложения и использовать встроенную проверку подлинности PHP (не нравится)

2) создать простую REST-FUL WebService вокруг проверки подлинности PHP (не знаю, как это сделать)

Что-нибудь еще, что я должен учитывать? Помощь очень ценится!

ответ

1

Существует не один стандартный способ аутентификации php. Обычно это связано с хранением некоторой информации или UID в сеансах, но ее сложно обобщить.

Вам нужно узнать, как работает существующая проверка подлинности, просматривая, какие формы отправляются туда.

Например, если вы обнаружили, что форма Войти нечто вроде

<form id="login" action="login.php"> 
<input type="text" name"username"> 
<input type="password" name="password"> 
</form> 

Вы можете эмулировать форму представления с помощью вызова AJAX.

Такой вызов может выглядеть следующим образом в JQuery:

<script> 
$(document).ready(function() { 
    $("form#login").bind("submit",function() { 
    $.post("login.php", "username=INSERTUSERNAMEHERE&password=INSERTPASSWORDHERE"); 
    return false; 
    }); 
}); 
</script> 
+0

Спасибо за подсказку, что имеет смысл. Познакомьтесь с автором оригинального PHP-приложения и попросите, чтобы он сделал некоторые настраиваемые php-услуги для меня. Думаю, все будет хорошо. – DavidR

0

Нет такой вещи, как аутентификация PHP. Это либо:

  • HTTP-аутентификация с использованием HTTP-заголовков.
  • аутентификация путем отправки HTML-формы.

Возможно, ваш сайт может вызвать страницу входа в систему PHP webapp и проверить, удалось ли это сделать.

0

«PHP аутентификации» обычно принимает имя пользователя и пароль, а впоследствии (если они правы) помечает текущий сеанс, как «вошли в "как-то.

Может быть достаточно отправить форму регистрации приложения через Ajax, используя правильные учетные данные.

0

вот что я хотел бы сделать:

$('form#login').submit(function(e){ 
    e.preventDefault(); 
    var formValues = $(this).serialize(); 
    $.ajax({ 
     url: 'login.php', 
     type: 'POST', 
     dataType: 'html', 
     data: formValues, 
     success: function(data, textStatus, xhr) { 
     $('.login-response').html(data); 
     } 
    }); 
}); 

и ваш HTML будет выглядеть так:

<form id="login" action="login.php"> 
    <input type="text" name"username"> 
    <input type="password" name="password"> 
    <div class="login-response"</div> 
</form>