地理定位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' )
现在开始工作了:)
更习惯?好的,让我们处理警报信号!
制作一些功能:
def alert_geolocation_handler(sender, request, user, **kwargs): # do some staff # deactivate User and force SMS code send to confirm identity ..
将您的功能与信号连接:
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
最后一步->;在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,但如果需要进行登台工作,例如, 为许多用户(测试人员和开发人员)提供一个管理员 关掉它很有用。