In Django you can read _auth_user_id from request.session dictionary after you authenticate and log in user. As I understand in “normal” conditions (standard authentication backend) it should be user id (pk).
But what is _auth_user_id when I’m using django-auth-ldap as authentication backend? It returns integers but there is no such values in my LDAP database.
Every Django authentication backend–django-auth-ldap included–ultimately returns an instance of
django.contrib.auth.models.Useron a successful authentication.django.contrib.sessions, in turn, knows only about these user objects; it doesn’t know or care which backend produced them. Sorequest.session['_auth_user_id']should be a User pk regardless of your backend. As a rule, of course, you would accessrequest.userfor convenience.If you’re using django-auth-ldap and you need to get back to the LDAP user, you can look at
request.user.ldap_user. See the documentation for details and performance considerations.