簡體   English   中英

如何從javascript檢查會話是否存在?

[英]How to check whether session exists from javascript?

我有一個帶有javascript前端(使用AngularJS和jQuery)和Java后端的應用程序。 該應用程序有很多頁面( ng-view )。

我需要知道后端中的會話當前是活動的還是無效的。 基於此,我需要確定是否在頁面上顯示“注銷”按鈕。

雖然我已經了解到,會話使用保持在瀏覽器會話cookie ,從這個這個 ,我的結論是,我們必須手工設置中,我們在JavaScript創建cookie對象的變量值。

有什么方法可以獲取用於與服務器通信的會話cookie? 通過獲取該cookie,我們也許可以查看該會話當前是否處於活動狀態。

如果我的口譯錯了,請告訴我。

您無法使用Session在Java腳本中檢查會話是否到期,因為如果您編寫如下代碼:

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

在文檔上寫的它可以正常工作,但不能更改javascript的值調用。 如果您重新加載頁面,則更新會話值。

通常,您無權從JavaScript訪問會話Cookie。 最簡單的方法是向服務器發出ajax請求,以檢查您是否具有經過身份驗證的會話。 或者,您可以設置帶有會話信息的自定義cookie。

使用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");
 }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM