一个可重用的django应用程序,更改密码后将使所有活动会话失效。

django-password-session的Python项目详细描述


一个可重用的django应用程序,更改密码后将使所有活动会话失效。

自django 1.7以来,此功能实现了out of the box

https://badge.fury.io/py/django-password-session.pnghttps://api.travis-ci.org/atugushev/django-password-session.pnghttps://coveralls.io/repos/atugushev/django-password-session/badge.png?branch=master

安装

  1. 安装软件包。
$ pip install django-password-session
  1. 将“密码会话”添加到已安装的应用程序设置中:
INSTALLED_APPS=(...'password_session',)
  1. 添加中间件:
MIDDLEWARE_CLASSES=(...'password_session.middleware.CheckPasswordHash',),
  1. 确保您有以下设置:
INSTALLED_APPS=(...'django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions',)AUTHENTICATION_BACKENDS=(...'django.contrib.auth.backends.ModelBackend',)MIDDLEWARE_CLASSES=(...'django.contrib.sessions.middleware.SessionMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware',)
  1. 要避免从当前会话中注销用户,应在更改密码后直接调用以下函数来更新会话:
frompassword_sessionimportupdate_session_auth_hashupdate_session_auth_hash(request,user)

示例视图

这是一个非常简单的修改密码的视图,只是为了演示如何更新当前会话。

fromdjango.contrib.auth.decoratorsimportlogin_requiredfromdjango.httpimportHttpResponsefrompassword_sessionimportupdate_session_auth_hashdefchange_password_view(request):user=request.useruser.set_password(request.POST.get('password'))user.save()update_session_auth_hash(request,user)returnHttpResponse("Hello, %s! Your password has been changed!"%user.username)

要求

  • python 2.6+或3+
  • django=1.3,<;1.7

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

推荐PyPI第三方库


热门话题
使用java在mysql中使用外键插入到表中   java Android按类别筛选列表   java对JGoodies外观的更改   java如何在Drools规则中推断中间值   用于虚拟拆分文本文件的java解决方案   使用XML的java Android UI(Android和XML)   使用ApachePOI库将工作表适配到xlsx文件中的单个页面时遇到的java问题   java类型为javafx。fxml。FXMLLoader不可访问(vscode)   java所有计划的作业都在运行,即使提到了节点id   java将大整数打印到文本文件   java让正则表达式忽略新行,只匹配整个大字符串?   java图形库   CardLayout的java替代品,不包含对所包含组件的引用   个人Android应用程序的java包名称   java 安卓写入文件不会写入任何内容   每次加载页面gest后,java Xpath都会发生变化   java动态地向FlipperView添加文本视图,并使用不同的滚动方式   java如何将新类映射到实体中的现有类?   ffmpeg无法将命令参数传递给外部。Java调用的exe应用程序