2010-10-11 34 views
1

Je gère actuellement un site web, codé en django, qui a 2 zones standard - le frontend et le backoffice (qui est construit en utilisant l'interface d'administration de django). Récemment, le client a réclamé 2 authentifications différentes - une pour les utilisateurs frontend et une autre - pour les personnes gérant le backoffice.Comment utiliser 2 authentifications différentes sur un site alimenté par django?

Jusqu'à présent, ils utilisaient tous deux l'authentification standard django.contrib.auth. Je sais que je pourrais faire en sorte que le client n'utilise que des utilisateurs différents (et peut-être interdire aux utilisateurs du backoffice de se connecter à la partie frontale) mais ils veulent plus de changements, comme: raccourcissement de l'inactivité de la session à quelques minutes (alors que sur le frontend - pour le garder comme pour toujours).

Est-il possible de définir des parties du site django pour utiliser une authentification différente? Avec des cookies différents, etc? Ou devrais-je utiliser un domaine différent pour backoffice, comme avoir un frontend sur site.com et admin sur admin.site.com, alors les deux ont fonctionné comme 2 applications différentes, en utilisant différents paramètres pour les cookies, etc?

Répondre

2

Django fournit une interface d'authentification back-end: http://docs.djangoproject.com/en/dev/topics/auth/#authentication-backends

Ici, vous pouvez spécifier la façon dont vous voulez que l'utilisateur authentifie. Vous pouvez utiliser les méthodes locales login() pour authentifier les utilisateurs du backoffice, et tout ce dont vous avez besoin pour le front end, vous pouvez l'implémenter si nécessaire. De toute façon, c'est l'endroit où vous définissez cette fonctionnalité.