Убить сеанс пользователя с помощью http DELETE

0

Я работаю над сайтом, который связан с отдыхом-api. Пользователи могут войти на веб-страницу. У меня есть кнопка выхода из системы, за которой мне нужно написать javascript/json/http-запрос, чтобы убить сеанс пользователя. Это то, что у меня есть, может ли кто-нибудь сказать мне, имеет ли это смысл?

<form action="http://apiaddresshere.com" method="delete" id = "myform">
          <input type = "submit" value="Logout">
        </form>

<script>


var form = document.getElementById("myform");

form.onsubmit = function (e) {
  // stop the regular form submission
  e.preventDefault();


  // construct an HTTP request
  var xhr = new XMLHttpRequest();
  xhr.open(form.method, form.action, true);
  xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');

  // send the null data as JSON
  xhr.send(JSON.stringify());

  xhr.onloadend = function () {
    // done
  };
};


</script>
  • 0
    В чем проблема у вас? «Есть ли смысл» не имеет особого смысла ...
  • 0
    Привет Ли, я нахожусь в процессе изучения того, как использовать эти технологии, и просто ищу небольшое руководство относительно того, иду ли я в правильном направлении.
Теги:
rest
http

3 ответа

1
Лучший ответ

Вы можете просто отправить сообщение по http://apiaddresshere.com/logout. Это было бы намного проще и стандартизованнее, чем пытаться использовать некоторые HTTP-api.

Простой и стандартный работает и продолжает работать, я рекомендую идти таким образом :)

Бог знает, какие прокси-серверы или корпоративные брандмауэры сделают ваш запрос DELETE. Но, эй, когда им это не нравится, приложение не сработает. И ты по праву обвинишься.

  • 0
    Хммм, я не понимал, что смогу это сделать. Можете ли вы дать мне представление о том, как это может выглядеть? Абсолютно новичок в веб-разработке и отдыхе, так что это немного смущает.
  • 0
    Возможно, остальные кнопки - AJAX, но обычно выход из системы всегда приводит пользователя на другую страницу! Так что просто отправьте простую ванильную форму и перенаправьте сервер на страницу /login . Ничего AJAX'ы в этом, вообще.
Показать ещё 2 комментария
1

Избегайте logout и login. Есть глаголы, а не существительные. URI должны представлять ресурсы, а не действия.

Если вы должны иметь сеанс, используйте URI, например

apiaddresshere.com/sessions/23245252354323

или что-то типа того. Затем, чтобы "выйти из системы", пользователь отправляет запрос DELETE этому ресурсу сеанса.

Конечно, сеансы, в первую очередь, не особенно RESTful, так что это может быть спорным вопросом.

1
    <a href="javascript:void(0)" onclick="logout()">Logout</a>
    function logout(){
    $.ajax({
      url: "logout.php",
    type:"post",
dataType: 'json'
    }).done(function() {

    });
    }
  • 0
    Привет, спасибо, но не могли бы вы объяснить, что это делает?
  • 0
    Это простая идея, вы публикуете нулевые данные json на странице сессионного убийцы, это возвращает вам json.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню