`` django iitg auth``是一个可重用的django应用程序,它提供了一个自定义的authenackation后端,用于通过iit guwahati webmail服务器、登录表单和实用程序视图进行身份验证。
django-iitg-auth的Python项目详细描述
Django IITG认证
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
用法:WebmailLoginForm和WebmailLoginView
也可以使用现成的表单(WebmailLoginForm)和基于类的视图(WebmailLoginView)。 不需要使用此窗体和视图。您可以编写自己的自定义登录表单和视图,以便与 WebMail身份验证后端,如上所述。
此表单的工作方式与django的内置AuthenticationForm完全相似。 唯一的区别是WebmailLoginForm有一个额外的字段,即登录服务器字段。
- WebmailLoginForm有3个字段:
- 用户名
- 密码
- 登录服务器
WebmailLoginView是一个FormView,它在get时呈现WebmailLoginForm,并在成功身份验证时重定向到success_url。
演示
注意:在example目录下有一个正在工作的演示项目。