Getting Started¶
Below are the basic steps need to get django-all-access integrated into your Django project.
Configure Settings¶
You need to add allaccess
to your installed apps as well as include an
additional authentication backend in your project settings. django-all-access requires
django.contrib.auth
, django.contrib.sessions
and django.contrib.messages
which are enabled in Django by default. django.contrib.admin
is recommended
for managing the set of providers, but is not required.
INSTALLED_APPS = (
# Required contrib apps
'django.contrib.auth',
'django.contrib.sessions',
'django.contrib.messages',
# Optional
'django.contrib.admin',
# Other installed apps would go here
'allaccess',
)
AUTHENTICATION_BACKENDS = (
# Default backend
'django.contrib.auth.backends.ModelBackend',
# Additional backend
'allaccess.backends.AuthorizedServiceBackend',
)
Note that AUTHENTICATION_BACKENDS
is not included in the default settings
created by startproject
. If you want to continue to use the default
username/password based authentication, you should be sure to include
django.contrib.auth.backends.ModelBackend
in this setting.
By default, django-all-access uses the built-in Django settings LOGIN_URL
and
LOGIN_REDIRECT_URL
. You should be sure that these are set to valid URLs for
your site.
Configure Urls¶
To use the default redirect and callback views, you should include them in your root URL configuration.
from django.conf.urls import include
urlpatterns = [
# Other URL patterns would go here
url(r'^accounts/', include('allaccess.urls')),
]
This makes the login URL for a particular provider /accounts/login/<provider>/
,
such as /accounts/login/twitter/
or /accounts/login/facebook/
. Once the user
has authenticated with the remote provider, they will be sent back to
/accounts/callback/<provider>/
, such as /accounts/callback/twitter/
or /accounts/callback/facebook/
.
Create Database Tables¶
You’ll need to create the necessary database tables for storing OAuth providers and
user associations with those providers. This is done with the migrate
management
command built into Django:
python manage.py migrate allaccess
Next Steps¶
At this point your project is configured to use the default django-all-access authentication, but no providers have been added. Continue reading to learn how to add providers for your project.