`` django iitg auth``是一个可重用的django应用程序,它提供了一个自定义的authenackation后端,用于通过iit guwahati webmail服务器、登录表单和实用程序视图进行身份验证。

django-iitg-auth的Python项目详细描述


Django IITG认证

https://img.shields.io/pypi/v/django-iitg-auth.svg?style=plastichttps://travis-ci.org/narenchoudhary/django-iitg-auth.svg?branch=masterhttps://codecov.io/gh/narenchoudhary/django-iitg-auth/branch/master/graph/badge.svg

django-iitg-auth是一个可重用的django应用程序,它提供 自定义身份验证后端,用于使用IIT Guwahati Webmail服务器进行身份验证, 登录表单和实用程序视图。

安装

django-iitg-auth可以使用以下pip命令安装。

pipinstalldjango-iitg-auth

用法:身份验证后端

'iitgauth'添加到项目的已安装应用程序设置中。

INSTALLED_APPS=['django.contrib.admin','django.contrib.auth',......'iitgauth',]

在settings.py中将'iitgauth.auth.WebMailAuthenticationBackend'添加到AUTHENTICATION_BACKENDS

AUTHENTICATION_BACKENDS=['django.contrib.auth.backends.ModelBackend','iitgauth.auth.WebMailAuthenticationBackend',]

这是使用webmail身份验证后端所需的所有配置。

注意后端的authenticate方法需要以下凭据:
  • 用户名
  • 密码
  • 登录服务器
  • 端口(默认设置为995)

下面的代码片段显示了如何在自定义视图中完成webmail身份验证。

fromdjango.contrib.authimportauthenticatefromdjango.views.genericimportViewclassLoginView(View):defget(self,request):# get request handling logic#defpost(self,request):form=LoginForm(request.POST)ifform.is_valid():username=form.cleaned_data('username')password=form.cleaned_data('password')login_server=form.cleaned_data('login_server')# open a socket to login server and query validity of credentialsuser=auth.authenticate(username=username,password=password,login_server=login_server,port=995)## rest of authentication logic#else:# invalid form hadling

用法:WebmailLoginFormWebmailLoginView

也可以使用现成的表单(WebmailLoginForm)和基于类的视图(WebmailLoginView)。 不需要使用此窗体和视图。您可以编写自己的自定义登录表单和视图,以便与 WebMail身份验证后端,如上所述。

此表单的工作方式与django的内置AuthenticationForm完全相似。 唯一的区别是WebmailLoginForm有一个额外的字段,即登录服务器字段。

WebmailLoginForm有3个字段:
  • 用户名
  • 密码
  • 登录服务器

WebmailLoginView是一个FormView,它在get时呈现WebmailLoginForm,并在成功身份验证时重定向到success_url

演示

注意:example目录下有一个正在工作的演示项目。

demo

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

推荐PyPI第三方库


热门话题
java Gradle嵌套项目配置   java一些mipmap没有显示   java如何使用按钮设置值以在wicket中输入文本   可分页的java自定义排序参数   java Android AdMob NoSuchMethodError:没有静态方法zzand()   java安卓工作室;启动到USB设备(手机),已安装但无法打开   java如何使用jsoup从HTML解析表   java如何自动生成arraylist?   java定制外观和感觉Nimbus   在Java中使用气泡排序对24位数组进行排序   java我无法将javafx与spring集成   java Play 2.7 http请求post请求   Java哈希表在“put”期间用新密钥覆盖现有密钥   如何找到java更新版本?