地理定位django中间件,用于检查用户IP或代理浏览器在会话期间是否发生更改。

django-geolocation-alert的Python项目详细描述


django地理位置警报是一个控制用户IP地址的中间件 以及会话期间的代理浏览器。如果有人要获取会话ID 并尝试从另一个IP使用它,否则将引发不同的代理浏览器警报 因此用户将使用警报消息注销。 您也可以打开发送信号,使一些定制人员处理它。 很多用户类可以被认证?别担心,看看下面。

该应用程序可以与任何django项目顺利集成。 您只需安装应用程序并将中间件添加到中间件类 在设置中。请阅读《快速入门》了解如何做到这一点。

功能

  • 当发送用户登录信号时,将地理位置用户哈希设置为request.session
  • 定义地理位置警报应引发的用户模型类
  • 如果用户IP或代理浏览器将更改并注销,则将地理位置警报作为信号发送
  • 如果需要,覆盖设置

未来功能

  • 确认它在Django 1.7上工作
  • PY2和PY3比较
  • Django降级概率1.6、1.5、1.4
  • 单元测试

要求

  • django==1.8
  • python==2.7

许可证

麻省理工学院

快速启动

通过命令在系统中安装django地理位置警报:

pip install django-geolocation-alert

然后在django项目中使用它,方法是将中间件设置为您的设置:

MIDDLEWARE_CLASSES = (
    ..
    'geolocation.middleware.GeolocationMiddleware'
)

现在开始工作了:)

更习惯?好的,让我们处理警报信号!

  1. 制作一些功能:

    def alert_geolocation_handler(sender, request, user, **kwargs):
        # do some staff
        # deactivate User and force SMS code send to confirm identity
        ..
    
  2. 将您的功能与信号连接:

    from geolocation.signal import geo_alert_occurred
    geo_alert_occurred.connect(alert_geolocation_handler)
    # I suggest connect it inside "basic app_module.views.py"
    # make sure that geo_alert_occurred.has_listeners() is True
    
  3. 最后一步->;在prj设置中打开发送警报信号:

    GEOLOCATION_SEND_SIGNAL = True
    

django.conf.settings

如果需要,覆盖其中一些。

geolocation\u哈希

存储地理位置哈希为“地理位置哈希”的默认会话密钥名称。 如果因为任何原因你想改变它,就直走吧。

地理定位发送信号

默认设置为false,但如果您需要处理此事件 只要打开它,为你的目的做一些处理。

地理位置发送消息

默认设置为“无”。这将添加标准消息(django.contrib.messages) 作为消息。带有文本的警告模式:

IP address or agent browser change during session time, after log on.

如果要设置不同的消息,请在prj设置中设置:

from django.utils.translation import ugettext_lazy as _
GEOLOCATION_SEND_MSG = _('You bastard!!! I got you!!!')

或通过以下方式将其关闭:

GEOLOCATION_SEND_MSG = False

地理定位用户模型

默认为“无”。如果您有许多用户模型类,请更改它 希望由地理位置警报处理:

GEOLOCATION_USER_MODELS = [
    "auth.User",
    "panel.PanelUser",
    "merchant.MerchantUser",
    "buyer.BuyerUser",
    "account.GuestAccount",
]

现在如果有人要获取会话ID并从不同的IP进行尝试 或者代理浏览器将被注销。如果有不同的用户类, 列表中没有注意到它不会被alert处理!

geolocation\u处于活动状态

默认设置为true,但如果需要进行登台工作,例如, 为许多用户(测试人员和开发人员)提供一个管理员 关掉它很有用。

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

推荐PyPI第三方库


热门话题
java Intellij通过方法中的包查找用法   java中VS代码和打包命名的问题   将java CMS功能集成到具有高度动态内容的网站(Lucene/Mysql/Nosql)的策略   oracle的java类强制转换异常。jdbc。驾驶员OracleConnection   字节码向JVM添加上指令   如何在抽象类中执行java方法?   java是否可以在apache访问日志中排除指定的GET参数?(作者:W7开发环境)   java如何获取已安装音频播放器的列表?   尝试向HS学生展示如何使用Java访问MS数据库   使用正则表达式java对给定行中的特定字符串进行计数   java JOOQ Select查询中的Select计数   方法Java,如何从二维双精度数组中找到特定值?   获取图像URL的java正则表达式   java在切换到新的窗口驱动程序后找不到元素