Перейти к публикации

Почему не могу авторизироваться с помощью dle.api?


Рекомендованные сообщения

 

Здравствуйте. Есть php файл такого вида:

<?php
include ('engine/api/api.class.php');
$request = $dle_api->external_auth( $_POST['ajaxname'],  $_POST['ajaxpass']);
if ($request == true)
    echo 'Вы успешно Авторизировались';
elseif ($request == false)
    echo 'Ошибка! Логин или пароль не совпали!';

На сайте его встречается такой js 

    $(function(){
        $('#ajaxlogin').on( "submit", function(e) {
            e.preventDefault();
            $.ajax({
                type: "POST",
                url: "ajaxlogin.php",
                data: $('#ajaxlogin').serialize(),
                success: function(data){
                    alert(data);
                }
            });
        });
       });

Создал форму, ввожу логин и пароль, возвращается true, обновляю страницу, а я как был гостем, так и остался. Почему так? Где ошибка?

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, qqignatqq сказал:

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

Потому что в вашем коде нет никакой авторизации, вы проверяете только введенные данные и все. Вместо 

echo 'Вы успешно Авторизировались';

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

Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, celsoft сказал:

Потому что в вашем коде нет никакой авторизации, вы проверяете только введенные данные и все. Вместо 


echo 'Вы успешно Авторизировались';

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

Ну и, извиняюсь за выражение, на*уй тогда в документации писать:

 

Цитата

$dle_api->external_auth( string $login, string $password);

Авторизация по логину и паролю. Возвращаемые значения: true - авторизация успешна, false - логин или пароль не верны.

???

Ссылка на сообщение
Поделиться на других сайтах

В документации написано все правильно. Не путайте API для работы с базой данных, с другими функциями и действиями на сайте. Данная функция проверяет авторизацию по введенным данным с базой данных, и возвращает вам соответствующие значения, а дальше вам уже и нужно делать нужные вам действия. API дается для взаимодействия сторонних скриптов с DLE, а  не делает какие то действия вместо DLE. В DLE есть свои механизмы для авторизации, которые сделают все нужные действия непосредственно для DLE.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 года спустя...

Столкнулся с такой же проблемой. Лучше тогда описать это как "Проверка авторизации\данных", а не "Авторизация по логину и паролю".

Ссылка на сообщение
Поделиться на других сайтах
  • 1 год спустя...

У меня интереснее вопрос )

 

Создал API для выгрузки данных сервиса (сайта) в нативное iOS приложение. DLE API предлагает использовать открытый пароль. Для авторизации в приложении и получения данных об учетной записи со стороны приложения должны ввести пароль и передать его POST-ом на мой сервер и получить json ответ. Использовать передачу пароля в открытом виде не безопасно. Вопрос, как создать сопоставимый хэш пароля, чтобы передать его POST-ом?

Ссылка на сообщение
Поделиться на других сайтах
54 минуты назад, -Sheckler- сказал:

У меня интереснее вопрос )

 

Создал API для выгрузки данных сервиса (сайта) в нативное iOS приложение. DLE API предлагает использовать открытый пароль. Для авторизации в приложении и получения данных об учетной записи со стороны приложения должны ввести пароль и передать его POST-ом на мой сервер и получить json ответ. Использовать передачу пароля в открытом виде не безопасно. Вопрос, как создать сопоставимый хэш пароля, чтобы передать его POST-ом?

Для того что бы не передавать в открытом виде, используйте HTTPS.
Никакой другой авторизации в DLE нет, всё остальное можете писать самостоятельно под себя.

Ссылка на сообщение
Поделиться на других сайтах
  • 3 недели спустя...

В целом разобрался. Вопрос как присвоить свой header application/json ?

игнорирует строку если пишу её в модуле при выводе строки json

Ссылка на сообщение
Поделиться на других сайтах
14 минут назад, -Sheckler- сказал:

В целом разобрался. Вопрос как присвоить свой header application/json ?

игнорирует строку если пишу её в модуле при выводе строки json

header должен быть выше любых выводимых данных.

Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, Gameer сказал:

header должен быть выше любых выводимых данных.

даже если в index.php написать  над подключением файлов всёравно игнор )

Ссылка на сообщение
Поделиться на других сайтах
В 10.08.2020 в 21:54, Gameer сказал:

header должен быть выше любых выводимых данных.

В DLE используется буферизация вывода, по этому можно этим пренебрегать, главное принудительно в своём коде не скидывать содержимое буфера.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...