客户端和服务器端会话超时并出现警告

django-session-securit的Python项目详细描述


https://img.shields.io/pypi/v/django-session-security.svghttps://img.shields.io/travis/yourlabs/django-session-security.svg

此应用程序提供了注销非活动身份验证用户的机制。一个 如果用户离开了其 工作站,用于保护浏览器中可能显示的敏感数据。它 可能对CRM、内部网和此类项目有用。

例如,如果用户离开去喝咖啡休息,此应用程序可以强制注销 在说5分钟的不活动之后。

为什么不将会话设置为在x分钟后过期?

或者“为什么这个应用程序还存在?”原因如下:

  • 如果用户会话在用户完成页面阅读之前过期:他将 必须再次登录。
  • 如果用户会话在填写完表单之前过期:他的工作 会迷路的,他会再次登录,可能会对你大喊大叫,亲爱的 Django Dev…至少我知道我会的!

此应用程序允许在会话到期时短路这些限制。

它是如何工作的?

当用户加载页面时,SessionSecurity中间件将设置最后一个 活动至今。最后一个活动存储为datetime 在request.session['_session_security']中。避免使用中间件 更新URL的上次活动日期时间,将URL添加到 settings.SESSION_SECURITY_PASSIVE_URLS

当用户移动鼠标、单击、滚动或按键时,会话安全将 将DateTime保存为JavaScript属性它将发送秒数 自从上次用户活动被记录到pingview之后,下次应该 发出砰的声响。

首先,应该在^{tt3}之后显示警告$ 几秒钟。警告显示一个类似“您的会话即将过期, 移动鼠标以扩展它”。

在显示此警告之前,SessionSecurity将上载自 上次客户端活动已被记录如果是,中间件将接受它 比它已经有的时间要短——也就是说,最近的另一项活动是 在另一个浏览器选项卡中检测到pingview将以 上次活动后的秒数-包括所有浏览器选项卡。

如果服务器没有记录其他更新的活动:它将 显示警告。否则它将更新javascript中的最后一个活动 pingview响应。

同样的内容将在settings.SESSION_SECURITY_EXPIRE_AFTER秒后过期。 Javascript将首先向PingView发出ajax请求,以确保另一个 在其他任何地方都没有检测到最近的活动-在任何其他浏览器选项卡中。

要求

  • python 2.7或3.5+
  • jQuery 1.7+
  • django 1.8至2.0
  • django.contrib.staticfiles或“yoyo”

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何处理可以为null或整数的POJO类值   JavaFXSpring类NotFoundException:org。springframework。上下文注释。注释ConfigApplicationContext   java Jackson JSON不包装嵌套对象的属性   编写多个SQL查询的java最佳实践   安卓 java。lang.IllegalStateException:无法提取AndroidPlatform、sslSocketFactory上的信任管理器   MongoDB/Morphia将技术id保存为ObjectId,尽管它在Java中是一个字符串   JavaEclipse只加载log4。测试文件夹中的属性   java如何通过次对角线遍历2D数组?   java在geotools jmappane中制作shapefile编辑器   数组如何在java中获得表大小2^32   java API调试。如何查找函数体之前发生的错误?   java如何创建二维数组,其中#1位于随机位置,并执行特定次数   java文本文件比较   java SDK支持diff spring版本   javaspring引导集成测试javax。坚持不懈PersistenceException:org。冬眠PersistentObject异常