繁体   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