http://www.iteye.com/topic/425633
客户希望如果没有操作,在30分钟后session过期,并且自动进行注销的操作。
显然服务器没有提供这方面的支持,所以只能从客户端下功夫。
实现的方式很简单,在js中记录进入页面的时间,通常用户的操作都会导致页面的刷新和url的变动,所以在公共的包含文件中加上如下的代码,1. 记录进入页面的时间。 2. 设置一个定时器,检查这个时间也现在时间的差值是否大于session过期的时间,也就是30分钟。
Js代码
var globalLastSessionTime = new Date();
calcSessionTime=function(){
var now = new Date();
var past = now - globalLastSessionTime;//ms
if(past>1800000){
logout();
}
}
var globalLastSessionTime = new Date();
calcSessionTime=function(){
var now = new Date();
var past = now - globalLastSessionTime;//ms
if(past>1800000){
logout();
}
}
不过现在系统中存在一部分dwr的ajax方法和操作。这些ajax操作室不会刷新页面的,那也就没办法更新到globalLastSessionTime了,所以必须在每次dwr操作之前对这个时间进行更新,幸好dwr都提供了方法,不然每个dwr方法都要改,那就惨了。
dwr.engine.setPreHook(functionName);
setPreHook可以再每次dwr远程调用之前运行指定的函数。
所以,再加上如下的代码就可以了:
Js代码
setSessionTime=function(){
globalLastSessionTime=new Date();
//alert(globalLastSessionTime);
}
DWREngine.setPreHook(setSessionTime);
setSessionTime=function(){
globalLastSessionTime=new Date();
//alert(globalLastSessionTime);
}
DWREngine.setPreHook(setSessionTime);
至此,大功告成。
分享到:
相关推荐
// Session过期处理,如注销用户、重定向到登录页面等 } ``` ### 2. 使用Session监听器 Java Web应用可以注册Session监听器来监听Session的生命周期事件,包括创建、销毁以及过期。当Session被废弃或过期时,监听...
表示用户没有登录或者session已经过期,此时拦截器会拦截请求,并通过客户端的JavaScript弹出提示框,通知用户重新登录,并通过`window.location.href`指向注销路径`/user/logout`,从而实现对未登录或session过期的...
6. **处理session过期**:默认情况下,session会在浏览器关闭时失效。若需更长的会话时间,可设置`cookie.maxAge`来指定session的有效期。 ```javascript app.use(session({ ..., cookie: { maxAge: 3600000 },...
注销时,服务器端的代码需要找到对应的session并销毁它。例如,在Java Servlet中,可以使用`HttpSession.invalidate()`方法来实现。 2. **Cookie处理**:很多网站为了保持用户状态,会在客户端浏览器设置cookie。...
标题中的问题涉及到Destoon系统在360浏览器...此外,对于其他浏览器的兼容性问题,可以参考相关文章,比如使用JS判断浏览器类型、禁用自动填充、处理Android软键盘遮罩等问题,以确保网站在不同浏览器下的良好表现。
- **会话生命周期**:会话在创建时开始,并在会话超时、注销或关闭浏览器时结束。 - **安全性**:由于 Session 数据存储在服务器上,相对于 Cookie 而言,它更安全,不容易被篡改。 **2. PHP 中操作 Session 的...
如果过期,则会丢弃Session数据,并更新用户状态(例如注销登录)。 即时注销,如在Persona系统中的做法,是通过在用户数据表和Session数据中都添加一个Token来实现的。在每次API调用时,服务端会比对Session数据中...
- **Session过期时间**:合理设置Session的过期时间,既能保证用户体验,又能保障系统的安全性。 - **清除Session数据**:用户注销或长时间无操作时,应及时清除Session数据,防止非法访问。 ### 三、示例代码详解 ...
为了实现这个功能,你需要在服务器端设置适当的Session过期时间,并在客户端用JavaScript定时检查用户活动。 接着,我们看第二个知识点——JavaScript和PHP结合实现动态双下拉菜单。在网页设计中,动态生成下拉菜单...
会话超时在会话即将到期时警告用户。 无依赖关系。 调用此函数时(通常每次加载页面时),计时器都会在后台启动。 当计时器关闭时,将向用户显示警告,告知他们的会话... script src =" session-timeout.js " > <
例如,在登录时创建的会话,在注销或会话过期之前不会更改。 为什么不是快速会话? 好吧,stubborn-session 提供了这些东西: 它允许商店设置会话 ID。 它允许不可变的会话。 可以在不使用中间件的情况下读取...
此应用程序提供了注销未通过身份验证的用户的机制。 如果用户离开工作站,则应该自动注销不活动的浏览器,以保护可能显示在浏览器中的敏感数据。... 最后一个活动作为日期时间存储在request.session['_session
5. `destroy($session_id)`: 当用户注销或者会话超时时,`destroy()`函数销毁与$session_id相关的所有会话数据。这可能包括清除数据库中的记录或删除存储的文件。 6. `gc($maxlifetime)`: 垃圾收集函数`gc()`定期...
在本文中,我们将深入探讨如何使用Express框架在JavaScript环境中实现登录验证。...同时,也需要确保在成功登录后,用户能够访问受限的后台页面,而在注销或会话过期后,用户将被重定向到登录页面。
本篇将深入探讨基于JavaScript实现的基本登录注销服务。 JavaScript是一种广泛使用的编程语言,尤其在Web前端开发中占据主导地位。对于账户管理系统,JavaScript可以用来创建交互式的用户体验,处理用户输入,以及...
2. **设置Cookie**:服务器会将这个标识设置为一个名为`session_id`的Cookie,并指定适当的过期时间。这样,浏览器会在本地保存这个Cookie。 3. **自动登录**:当用户再次访问网站时,浏览器会在每个HTTP请求头中...
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程。在这个场景下,Node.js被用来创建一个中间服务,该服务可以与微信的小程序接口进行交互,处理登录验证和会话...
登录成功后,用户的登录状态也会被存储在Session中,直到用户注销或者Session过期。 4. **数据库连接与用户验证**: 这个项目使用了MySQL数据库存储用户信息。开发者需要使用JDBC(Java Database Connectivity)来...
在Web开发中,特别是JavaScript环境下,会话是至关重要的,因为它允许网站在用户浏览器关闭或重新加载后仍能识别并记住用户。下面将详细讨论会话、会话过期以及如何使用JavaScript进行会话管理。 会话(Session)是...
可以利用JavaScript的`onbeforeunload`事件来监听用户关闭浏览器窗口或刷新页面的行为,并在这些行为发生前强制执行注销操作。 ```javascript function window.onbeforeunload() { if (event.clientX > document....