Bonjour à tous,

J'ai un petit problème avec mon authentification . ( qui fonctionne correctement avec le serveur de développement intégré à Django, mais pas sur un serveur uwsgi + Nginx )

Le problème :

L'authentification fonctionne, mais de temps en temps, lorsque je navigue sur le site , ou qu'une requête ajax est lancée ou encore avec un simple rafraîchissement, je me retrouve avec le formulaire d'authentification .. pourtant je ne suis pas déconnecté, car si je rafraîchi la page .. le formulaire d'authentification disparaît .

Pour gérer cette authentification, j'ai créé un simple middleware qui vérifie à chaque requête si ou ou non l'utilisateur est authentifié .

middleware :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
from django.http import HttpResponse,HttpResponseRedirect
 
class AuthenticationMiddleware(object):
 
    _LOGIN_PATH = "/accounts/login_view/"
 
    def process_request(self, request):
 
        if (request.path != self._LOGIN_PATH) and not request.is_ajax():
            if not request.user.is_authenticated():
                return HttpResponseRedirect( self._LOGIN_PATH+'?next=%s' % request.path)
        return None
Et voici le paramètre MIDDLEWARE_CLASSES dans mon settings
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    'auth.middlewares.AuthenticationMiddleware',
)
Et enfin le SESSION_ENGINE
Code : Sélectionner tout - Visualiser dans une fenêtre à part
SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'
Je ne sais plus ou chercher

Merci d'avance pour votre aide .

Ch.