Как проверить, существует ли сессия из JavaScript?

0

У меня есть приложение с интерфейсом в javascript (используя AngularJS и jQuery) и бэкэнд в java. Приложение имеет много страниц (ng-view).

Мне нужно знать, активен ли сеанс в бэкэнд в настоящий момент или недействителен. Исходя из этого, мне нужно решить, показывать ли кнопку "Выход" на странице или нет.

Хотя я узнал, что сеанс поддерживается в браузере, используя куки сессии, от этого и это, я пришел к выводу, что мы должны вручную установить значения переменных в объекте куки, которые мы создаем в JavaScript.

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

Пожалуйста, дайте мне знать, не ошибается ли мое вмешательство.

  • 0
    Это не путь. У вас не будет доступа к записям сервера при существовании сеанса. Любой может создать локальный файл cookie с идентификатором сеанса.
  • 0
    Почему вы не выводите страницу просмотра в зависимости от того, есть сеанс или нет? Файл cookie не является надежным, поскольку сервер может иметь свое собственное время ожидания сеанса.
Показать ещё 2 комментария
Теги:
cookies
session

4 ответа

1

Вы не можете проверить истечение сеанса или нет в java-скрипте, используя Session, потому что, если вы пишете такой код:

if (isset($_SESSION["PHPSESSID"])) {}

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

0

использовать ajax-код PHP (session.php)

<?php
session_start();
if (isset($_SESSION['username'])) {
    echo 'success';
}

JQuery:

$.ajax({
    url: 'path-to/session.php',
    type: 'POST',
    success: function(result) {
        if (result == 'success'){
            //...
        }else{
            //...
        }
    }
});
0

На самом деле есть способ, который вы можете использовать для проверки сессии через javascript, вот код

$.get('path/to/session_check.php', function(data) {
 if( data == "Expired" ) {
     alert("Session expired");
 } else if (data == "Active" ) {
     alert("Session active");
 }
});
0

Как правило, у вас нет доступа к сессионным файлам cookie из JavaScript. Самый простой способ - просто сделать запрос ajax на сервер, чтобы проверить, есть ли у вас сеанс аутентификации. Кроме того, вы можете настроить пользовательский файл cookie с информацией о сеансе.

Ещё вопросы

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