``django-iitg-auth`` is a reusable Django application which provides a custom authencation backend for authenticating with IIT Guwahati webmail servers, a login form and a utility view.
Project description
django-iitg-auth
django-iitg-auth is a reusable Django application which provides a custom authencation backend for authenticating with IIT Guwahati webmail servers, a login form and a utility view.
Installation
django-iitg-auth can be installed using following pip command.
pip install django-iitg-auth
Usage: Authentication Backend
Add 'iitgauth' to INSTALLED_APPS settings of the project.
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
...
...
'iitgauth',
]
Add 'iitgauth.auth.WebMailAuthenticationBackend' to AUTHENTICATION_BACKENDS in settings.py.
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'iitgauth.auth.WebMailAuthenticationBackend',
]
This is all the configuration required to use the webmail authentication backend.
- Note that authenticate method of the backend requires following credentials:
username
password
login server
port (default is set to 995)
Following snippet shows how webmail authentication can be done in a custom view.
from django.contrib.auth import authenticate
from django.views.generic import View
class LoginView(View):
def get(self, request):
# get request handling logic
#
def post(self, request):
form = LoginForm(request.POST)
if form.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 credentials
user = auth.authenticate(username=username, password=password,
login_server=login_server, port=995)
#
# rest of authentication logic
#
else:
# invalid form hadling
Usage: WebmailLoginForm and WebmailLoginView
A ready-to-use form (WebmailLoginForm) and a class based view (WebmailLoginView) are also available. Using this form and view is not necessary. You can write your own custom login form and view to use with webmail authentication backend as explained above.
This form works exactly similar to Django’s built-in AuthenticationForm. Only difference is WebmailLoginForm has one extra field, .i.e. Login Server field.
- WebmailLoginForm has 3 fields:
username
password
login_server
WebmailLoginView is a FormView which renders WebmailLoginForm on GET and redirects to success_url on successful authentication.
Demo
Note: There is a working demo project available under example directory.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-iitg-auth-0.0.4.tar.gz
.
File metadata
- Download URL: django-iitg-auth-0.0.4.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dff29f27f523361ac09f5e81a60ca90e3e90a6ed49fbe7fc4dff839078fbde63 |
|
MD5 | c1cbffc59e81afa331fd3ff39a25dee0 |
|
BLAKE2b-256 | afd3ba5fb43ed004cbb4f87a289e72b8fa2047dad9f4b9a82b20e4a8eff69813 |
File details
Details for the file django_iitg_auth-0.0.4-py2.py3-none-any.whl
.
File metadata
- Download URL: django_iitg_auth-0.0.4-py2.py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d854cc7b3faf7a12f135443b489545573c5498f860215200020f020c8574af66 |
|
MD5 | 3f4ef775aa6618d9adc77ded1a842d6b |
|
BLAKE2b-256 | 8e335fbc90a481e105a3c8c922ec021481c0d5f43c206f09c0cc22501d438c8e |