les sessions de connexion pour django
Je suis en train de définir les sessions de connexion dans mon application web, mais ne peut pas le faire fonctionner. Je suis nouveau sur django et de lire la documentation pour les sessions mais pas la connexion à mon application web. Tout ce que je veux de lui en ce moment est de vérifier si un utilisateur est connecté et si redirige pas vers la page de connexion.
Voici le code que j'essaie d'intégrer les sessions de connexion.
settings.py
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'logins',
'dashboards'
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
urls.py
from django.conf.urls import patterns, include, url
from django.conf import settings
from django.conf.urls.static import static
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', 'logins.views.login', name='login'),
url(r'^accounts/auth/$', 'logins.views.auth_view', name='auth_view'),
url(r'^accounts/dashboard/$', 'dashboards.views.dashboard', name='dashboard'),
url(r'^accounts/logout/$', 'logins.views.logout', name='logout'),
url(r'^accounts/invalid/$', 'logins.views.invalid', name='invalid'),
views.py pour les connexions
from django.shortcuts import render, render_to_response, RequestContext
from django.http import HttpResponseRedirect, HttpResponse
from django.contrib import auth
from django.core.context_processors import csrf
def login(request):
c = {}
c.update(csrf(request))
return render_to_response('login.html', c)
def auth_view(request):
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = auth.authenticate(username=username, password=password)
if user is not None and user.is_active:
auth.login(request, user)
return HttpResponseRedirect('/accounts/dashboard')
else:
return HttpResponseRedirect('/accounts/invalid')
def logout(request):
auth.logout(request)
return render_to_response('logout.html')
def invalid(request):
return render_to_response('invalid.html')
views.py pour le tableau de bord de l'app c'est d'être connecté à
from django.shortcuts import render, render_to_response, RequestContext
from django.http import HttpResponseRedirect, HttpResponse
from django.contrib import auth
from django.core.context_processors import csrf
def dashboard(request):
return render_to_response('dashboard.html')
- Est-il une raison particulière pour laquelle vous êtes en évitant les intégré dans le système d'authentification? Il est doté de fonctionnalités pour rediriger les utilisateurs, s'ils ne sont pas connectés à la page de connexion.
- Le lien est mort.
Vous devez vous connecter pour publier un commentaire.
Très simple à faire que dans django:
Dans cet exemple, les sessions seront enregistrées dans la base de données (vous devez synchroniser votre django app avec votre base de données)
Utilisateur-Connexion:
Et pour les autres sites (là où vous devez être loggedin):
Ou l'utilisation de la
login_require
-décorateur:Vous pouvez utiliser Django intégré dans le système d'authentification qui prend soin de vérifier si un utilisateur est connecté ou non. Vous pouvez utiliser login_required décorateur.
views.py