Искать  
 
   
 
Ajax авторизация.
Отправлено: 16 Март 2009 08:34 P.M.   [ Игнорировать ]
Студент
RankRank
Всего сообщений:  99
Зарегистрирован  2008-02-06

Есть хороший скриптик для ajax авторизации, прикрепляю его к сообщению.

Скрипт проверяет данные и если логин и пароль совпадают, делает переадресацию, если пароль не верный, сообщает об ошибке.

Подскажите как его прикрутить к ЕЕ, что бы проверял эти самые данные.

Приложения с файлами
ajaxLogin.zip  (Размер файла: 17KB - Загрузок: 472)
Профиль
 
 
Отправлено: 16 Март 2009 09:25 P.M.   [ Игнорировать ]   [ # 1 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

А зачем вообще сторонний скрипт? Самое простое - берем  jquery + form и с помощью этого отправляем запрос с формы логина. Далее получаем запрос обратно и обрабатываем как душе угодно (вот тут кстати, есть пример).

 Подпись 

booooring…

Профиль
 
 
Отправлено: 16 Март 2009 09:56 P.M.   [ Игнорировать ]   [ # 2 ]
Студент
RankRank
Всего сообщений:  99
Зарегистрирован  2008-02-06
Calm - 16 Март 2009 09:25 P.M.

А зачем вообще сторонний скрипт? Самое простое - берем  jquery + form и с помощью этого отправляем запрос с формы логина. Далее получаем запрос обратно и обрабатываем как душе угодно (вот тут кстати, есть пример).

Ну не совсем то что нужно. Тот скрипт что я выложил тоже работает через jquery, но без form - а это - 22,5кб, что немаловажно. И сам скриптик довольно простой. Вопрос в том, как его к ЕЕ присобачить, то-есть что бы отправлял запрос и получал ответ.

Профиль
 
 
Отправлено: 16 Март 2009 10:20 P.M.   [ Игнорировать ]   [ # 3 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

Ну во-первых, форм - 9kb,  если сжать его вместе с основным jquery, то ужмется и до 5kb (знаю, т.к. оттачиваю свой набор для проектов - 30kb с ядром и  множеством внутреннего функционала).
можно воспользоваться плагином ajaxify - 7kb.
Что же касается приведенного вами скрипта:

  <script type=“text/javascript”>

$(document).ready(function(){
$(”#login_form”).submit(function() {
        //  AJAX  
        $.post($(”#login_form”).attr(‘action’), { username:$(‘input[@name=username]’).val(),password:$(‘input[@name=password]’).val(), auto_login:$(‘input[@name=auto_login]’).val(), XID:$(‘input[@name=site_id]XID’).val(),site_id:$(‘input[@name=]’).val(), ACT:$(‘input[@name=ACT]’).val(),RET:$(‘input[@name=RET]’).val() } ,function(data) {
          if(data==1) {

          } else {

          }
        });
        return false;//  (  )
  });
});
</script>

+ еще в форму логина надо добавить Id

{exp:member:login_form return="site/index" id="login_form"

ну а с обработкой данных вы уже сами....

 Подпись 

booooring…

Профиль
 
 
Отправлено: 16 Март 2009 10:46 P.M.   [ Игнорировать ]   [ # 4 ]
Студент
RankRank
Всего сообщений:  99
Зарегистрирован  2008-02-06

Пасиб, буду пробовать.

Профиль
 
 
Отправлено: 16 Март 2009 11:09 P.M.   [ Игнорировать ]   [ # 5 ]
Администратор
RankRankRankRank
Всего сообщений:  1354
Зарегистрирован  2008-01-02

кстати, задачка об авторизации достаточна интересная smile Т.к. на итоговой странице нет в явном виде маркера удачного входа. Можно конечно анализировать страницу на слова, характерные для успешного входа. Можно, в случае если сайт весь на ajax, полностью переделать страницу ответа так, что бы она выдавала только статусное сообщение.  Или можно еще схитрить - после удачного отклика от страницы, сделать еще один запрос на легкую страницу, где, к примеру, по тегам login/logout будут выдавать разные теги и вот их анализировать.

P.s. или дождаться EEv2 - там с этим будет попроще smile

 Подпись 

booooring…

Профиль
 
 
Отправлено: 16 Март 2009 11:55 P.M.   [ Игнорировать ]   [ # 6 ]
Студент
RankRank
Всего сообщений:  99
Зарегистрирован  2008-02-06

Что-то ничего не получается с твоим примером. Мне нужно что бы и функциональность поп-ап окна сохранилась, как только твой код подставляю вместо:

$.post($("#login_form").attr('action'), { username:$('#username').val(),password:$('#password').val(),rand:Math.random() ,function(data{
if(data==1{
// логин верный
$("#login_result").fadeTo(200,0.1,function() {
$(this).html('Редирект.....').removeClass().addClass('success').fadeTo(900,1,
function() 
{
document
.location='secure.php';
});
}); 

поп-ап окно не открывается.

Профиль
 
 
Отправлено: 17 Март 2009 12:14 A.M.   [ Игнорировать ]   [ # 7 ]
Студент
RankRank
Всего сообщений:  99
Зарегистрирован  2008-02-06

Понял, проблема была в кавычках. Нужно было исправить ’’ на ‘’. Теперь поп-ап открывается, но проверка аяксом не работает. Сразу на стандартную ошибку ЕЕ перебрасывает при неверном логине\пароле.

Профиль