Как использовать аутентификацию на основе PHP из приложения AJAX, не основанного на PHP? - PullRequest
0 голосов
/ 18 июня 2010

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

Пока я вижу два варианта

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

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

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

Ответы [ 4 ]

1 голос
/ 18 июня 2010

Не существует единого стандартного способа аутентификации 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 голосов
/ 18 июня 2010

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

$('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>
0 голосов
/ 18 июня 2010

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

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

0 голосов
/ 18 июня 2010

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

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

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

...