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

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第三方库


热门话题
用于读取OBS写入的java打开文件   java使用XFire通过ssl使用Web服务   java如何查看幸存者空间中的对象   不使用ActionListener从按钮执行java代码   java仅当用户执行某个操作时,如何清除应用程序的历史记录?   json无法反序列化'java'的实例。lang.Long`out-of-START\u对象标记;在弹簧靴柱上   JavaPOJO到OpenApi定义   java时间戳格式不显示不同的值   java Android:如何从片段切换到主要活动?   用于步进计数器/健身应用程序的java循环进度条   java Log4j更改特定记录器实例的记录器级别   JAVA中实现连接的数据结构   java Mockito静态函数mock   未找到java辅助技术:org。侏儒。可访问性。阿特克拉珀   java仅当列表中没有类似项时才向ArrayList添加项   java如何使用docx4j在word中添加合并字段?