基于django身份验证的会话过期

django-expire的Python项目详细描述


提供基于身份验证的会话过期的django应用程序。

要将此应用程序安装到项目中,请先将其添加到 INSTALLED_APPS设置(并运行manage.py syncdb):

INSTALLED_APPS = (
    ...
    'django_expire',
)

接下来,将到期中间件添加到MIDDLEWARE_CLASSES设置中, 将它放在sessionauth中间件之后。

MIDDLEWARE_CLASSES = (
    ...
    'django_expire.middleware.ExpireMiddleware',
)

它的功能

对于经过身份验证的用户的每个请求,都会运行一个检查以确保 属于该用户的其他会话的不超过 最大值。

这个最大值默认为,但是您可以提供一个 设置覆盖此默认值(设置0允许 每个会话的用户数量)。

如果用户超过了允许的会话数,则 会话被删除(有效地将用户从这些会话中注销现在已失效 会话)。

记录的会话

每个会话的日志存储在django_expire.models.LoggedSession 模型。

默认情况下,不会从数据库中删除无效的会话,因此您可以 使用此模型检索登录信息(例如,日期/时间和IP 地址)。

使用EXPIRE_LOG_LIMIT设置将过期会话日志的限制设置为 为每个用户保留(可以使用0直接删除过期的会话日志 离开或None无限制)。

更改每个用户的过期设置

django_expire.signals.expire_check允许您更改 每个用户级别的过期设置。

在运行任何测试之前发送该信号以及设置字典 包含单个max_users密钥。信号处理程序可能会更改该值 以更改此用户的设置。

示例处理程序(未自动连接)可以在 django_expire.signals.superuser_handler,它演示了 超级用户会话的数量不受限制。

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

推荐PyPI第三方库


热门话题
java使用split函数分割字符串,但没有得到期望的结果   未找到包含derby数据库嵌入架构的sql Java桌面应用程序错误   java elasticsearch vs solr用于定制全文搜索系统   java Android:创建没有startOffset的动画延迟?   java如何查看其他应用程序接收的数据?   java如何在Linux中使用D和classpath选项运行jar文件   java和域设计最佳实践   具有相同内存位置的java数组,将显示为输出   连接到java中的elasticsearch?   Java Playframework重定向到带有Json负载的外部url   java无法在Android平台上使用InputStream为蓝牙socket创建ObjectInputStream   使用POI将Excel日期转换为Java日期,年份未正确显示   oracle从数据库层还是Java层调用webservice?