带有警告的客户端和服务器端会话超时
项目描述
这个应用程序提供了一种机制来注销非活动的经过身份验证的用户。如果用户离开他的工作站,不活动的浏览器应该自动注销,以保护可能显示在浏览器中的敏感数据。它可能对 CRM、Intranet 和此类项目很有用。
例如,如果用户去喝咖啡休息,这个应用程序可以在 5 分钟不活动后强制注销。
为什么不将会话设置为 X 分钟后过期?
或者“为什么这个应用程序甚至存在”?以下是原因:
如果用户会话在用户完成阅读页面之前到期:他将不得不再次登录。
如果用户会话在用户填写表单之前过期:他的工作将会丢失,他将不得不再次登录,并且可能会对你大喊大叫,亲爱的 django dev……至少我知道我会的!
此应用程序允许在会话到期时短路这些限制。
它是如何工作的 ?
当用户加载页面时,SessionSecurity 中间件会将最后一个活动设置为现在。最后一个活动作为日期时间存储在request.session['_session_security']中。为避免中间件更新 URL 的最后一个活动日期时间,请将 url 添加到 settings.SESSION_SECURITY_PASSIVE_URLS。
当用户移动鼠标、单击、滚动或按键时,SessionSecurity 会将 DateTime 保存为 JavaScript 属性。它将发送自上次用户活动记录到 PingView 以来的秒数,下次它应该 ping。
首先,应该在settings.SESSION_SECURITY_WARN_AFTER 秒后显示警告。警告显示类似“您的会话即将到期,请移动鼠标以延长它”的文本。
在显示此警告之前,SessionSecurity 将上传自上次记录客户端活动以来的时间。如果中间件比它已经拥有的更短,中间件将采用它 - 即。在另一个浏览器选项卡中检测到另一个更新的活动。PingView 将响应自上次活动以来的秒数 - 包括所有浏览器选项卡。
如果服务器没有记录其他更新的活动:它将显示警告。否则,它将从 PingView 响应中更新 javascript 中的最后一个活动。
同样在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
资源
您可以订阅邮件列表提出问题或只是被告知包更新。
项目详情
django_session_security_iplweb-2.6.6-py3-none-any.whl 的哈希 值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3246258aae5257cf18ffe2f5013156acbdc0c161a6a609d788b6cc1a11a4b0d1 |
|
MD5 | 834b6403970e4bdf135190c7f8522cd5 |
|
布莱克2-256 | d1d63fed191a23f76b93196564a5a4a3e4467478f24fd8f67444ea0a877b1e9f |