Unable log in to the django admin page with a valid username and password
I had this problem. The issue is that in production I set two variables to True
that allowed me to connect to the site using https.
SESSION_COOKIE_SECURE
and CSRF_COOKIE_SECURE
should be set to False
if you are developing on localhost http. Changing these two variables to False
allowed me to sign into the admin site when developing locally.
Steps to debug:
- Make sure that your Database is synced
- Double check that you have a django_session table
- Try to authenticate
- Do you see a record being created in the
django_session
table?
- Do you see a record being created in the
IF NOT
- remove non-standard settings
- AUTHENTICATION_BACKENDS = ('django.contrib.auth.backends.ModelBackend',)
- SESSION_EXPIRE_AT_BROWSER_CLOSE = True
- SESSION_SAVE_EVERY_REQUEST = True
- SESSION_COOKIE_AGE = 86400 # sec
- SESSION_COOKIE_DOMAIN = None
- SESSION_COOKIE_NAME = 'DSESSIONID'
- SESSION_COOKIE_SECURE = False
- Make sure that your Database is synced
- Double check that you have a
django_session
table
- Double check that you have a
- Try to authenticate
- Do you see a record being created in the
django_session
table?
- Do you see a record being created in the
Let me know if this turns up any useful debug.
Sample settings file: https://github.com/fyaconiello/Django-Blank-Bare-Bones-CMS/blob/master/dbbbcms/settings.py
>>> from django.contrib.auth import authenticate
>>> u = authenticate(username="user", password="pass")
>>> u.is_staff = True
>>> u.is_superuser = True
Is there something else I'm missing?
u.is_active
should be True
I don't believe the admin password is stored in the settings.py file. It's created when you first syncdb. I am thinking you either skipped creating the superuser or just made a typo. Try running in terminal at your projects root.:
python django-admin.py createsuperuser
That will allow you to retype your admin login. Also seen here https://docs.djangoproject.com/en/dev/ref/django-admin/