У меня есть приложение с интерфейсом в javascript (используя AngularJS и jQuery) и бэкэнд в java. Приложение имеет много страниц (ng-view).
Мне нужно знать, активен ли сеанс в бэкэнд в настоящий момент или недействителен. Исходя из этого, мне нужно решить, показывать ли кнопку "Выход" на странице или нет.
Хотя я узнал, что сеанс поддерживается в браузере, используя куки сессии, от этого и это, я пришел к выводу, что мы должны вручную установить значения переменных в объекте куки, которые мы создаем в JavaScript.
Есть ли способ получить файл cookie сеанса, который используется для связи с сервером? Получив этот файл cookie, мы можем увидеть, активен ли сеанс или нет.
Пожалуйста, дайте мне знать, не ошибается ли мое вмешательство.
Вы не можете проверить истечение сеанса или нет в java-скрипте, используя Session, потому что, если вы пишете такой код:
if (isset($_SESSION["PHPSESSID"])) {}
что запись на документе работает нормально, но не может изменить вызов значения javascript. если вы перезагрузите страницу, чем обновление значения сеанса.
использовать 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{
//...
}
}
});
На самом деле есть способ, который вы можете использовать для проверки сессии через javascript, вот код
$.get('path/to/session_check.php', function(data) {
if( data == "Expired" ) {
alert("Session expired");
} else if (data == "Active" ) {
alert("Session active");
}
});
Как правило, у вас нет доступа к сессионным файлам cookie из JavaScript. Самый простой способ - просто сделать запрос ajax на сервер, чтобы проверить, есть ли у вас сеанс аутентификации. Кроме того, вы можете настроить пользовательский файл cookie с информацией о сеансе.