Django i allauth

W tym poście chciałbym przedstawić krótki tutorial jak skonfigurować allauth https://readthedocs.org/projects/django-allauth/ plugin. Plugin ten służy do dodania integracji z zewnętrznymi usługami i wykorzystania ich jako logowania do naszej aplikacji. Dzięki temu użytkownik nie będzie musiał tworzyć konta w naszej aplikacji, żeby z niej korzystać. Zamiast tego będzie mógł po prostu skorzystać ze swojego konta facebooka/githuba.

Zacznijmy od zainstalowania allauth

pip install django-allauth

Kolejnym krokiem bedzie dodanie do pliku setting.py paru linijkek. Za ich pomocą dodajemy do naszego projektu allauth i jednocześnie uruchamiamy wsparcie dla facebooka i githuba.

Najpierw do list INSTALLED_APPS dodajmy

installed_apps =
   ...
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'allauth.socialaccount.providers.facebook',
    'allauth.socialaccount.providers.github'
   ...

Parę dodatkowych opcji konfiguracyjnych

TEMPLATES = [
    {
    ...
            'context_processors': [
        ...
                'django.contrib.auth.context_processors.auth',
                 ],
        },
]


AUTHENTICATION_BACKENDS = (
    'django.contrib.auth.backends.ModelBackend',
    'allauth.account.auth_backends.AuthenticationBackend',
    )    

Facebook dodatkowo będzie wymagał wypisu

SOCIALACCOUNT_PROVIDERS = {
    'facebook': {
        'SCOPE': ['email', 'publish_stream'],
        'METHOD': 'js_sdk'   }
}

Na sam koniec, dodajmy jeszcze:

url(r'^accounts/', include('allauth.urls')),

do naszego urls.py

Wystarczy teraz uruchomić:

python manage.py migrate

i wszystko powinno dobrze działać. Musimy jeszcze skonfigurować naszą aplikację by potrafiłą porozumieć się z facebookiem/githubem i zalogować osobę.

Musimy stworzyc nową aplikację w https://developers.facebook.com i odpowiednio ją skonfigurować. Ponieważ będzie ona testowana tylko lokalnie możemy śmiało wpisać wszędzie localhost albo 127.0.0.1

image

Github posiada analogiczną stronę https://developer.github.com/ . Zarejestrujmy naszą aplikacje https://github.com/settings/applications/new

image

Ostatnim etapem jest wpisanie naszych kluczy do naszej aplikacji (klucz dostaniemy podczas tworzenia konta naszej aplikacji na stronie developers.facebook, czy developer.github.com.

image

Od tego momentu powinniśmy być w stanie zalogować się do naszej aplikacji za pomocą facebooka/githuba.

image