Django Utilizzando Django Allauth


Esempio

Per tutti i miei progetti, Django-Allauth ne è rimasto uno che è facile da configurare e viene fornito con molte funzionalità tra cui, a titolo esemplificativo:

  • Oltre 50 autenticazioni di social network
  • Mescolare l'iscrizione di account locali e social
  • Più account sociali
  • Registrazione istantanea opzionale per account social: nessuna domanda
  • Gestione dell'indirizzo e-mail (più indirizzi e-mail, impostazione di un primario)
  • Flusso dimenticato dalla password Flusso di verifica dell'indirizzo e-mail

Se sei interessato a sporcarti le mani, Django-Allauth si toglie di mezzo, con configurazioni aggiuntive per ottimizzare il processo e l'uso del tuo sistema di autenticazione.

I passaggi seguenti presuppongono che tu stia utilizzando Django 1.10+

Passaggi di installazione:

pip install django-allauth

Nel file settings.py , apporta le seguenti modifiche:

# Specify the context processors as follows:
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                # Already defined Django-related contexts here

                # `allauth` needs this from django. It is there by default,
                # unless you've devilishly taken it away.
                'django.template.context_processors.request',
            ],
        },
    },
]

AUTHENTICATION_BACKENDS = (
    # Needed to login by username in Django admin, regardless of `allauth`
    'django.contrib.auth.backends.ModelBackend',

    # `allauth` specific authentication methods, such as login by e-mail
    'allauth.account.auth_backends.AuthenticationBackend',
)

INSTALLED_APPS = (
# Up here is all your default installed apps from Django

# The following apps are required:
'django.contrib.auth',
'django.contrib.sites',

'allauth',
'allauth.account',
'allauth.socialaccount',

# include the providers you want to enable:
'allauth.socialaccount.providers.google',
'allauth.socialaccount.providers.facebook',
)

# Don't forget this little dude.
SITE_ID = 1

Fatto con le modifiche nel file settings.py sopra, passa al file urls.py Può essere il yourapp/urls.py o il tuo ProjectName/urls.py Normalmente, preferisco ProjectName/urls.py

urlpatterns = [
    # other urls here
    url(r'^accounts/', include('allauth.urls')),
    # other urls here
]

Semplicemente aggiungendo l' include('allauth.urls') , ti dà questi URL gratuitamente:

^accounts/ ^ ^signup/$ [name='account_signup']
^accounts/ ^ ^login/$ [name='account_login']
^accounts/ ^ ^logout/$ [name='account_logout']
^accounts/ ^ ^password/change/$ [name='account_change_password']
^accounts/ ^ ^password/set/$ [name='account_set_password']
^accounts/ ^ ^inactive/$ [name='account_inactive']
^accounts/ ^ ^email/$ [name='account_email']
^accounts/ ^ ^confirm-email/$ [name='account_email_verification_sent']
^accounts/ ^ ^confirm-email/(?P<key>[-:\w]+)/$ [name='account_confirm_email']
^accounts/ ^ ^password/reset/$ [name='account_reset_password']
^accounts/ ^ ^password/reset/done/$ [name='account_reset_password_done']
^accounts/ ^ ^password/reset/key/(?P<uidb36>[0-9A-Za-z]+)-(?P<key>.+)/$ [name='account_reset_password_from_key']
^accounts/ ^ ^password/reset/key/done/$ [name='account_reset_password_from_key_done']
^accounts/ ^social/
^accounts/ ^google/
^accounts/ ^twitter/
^accounts/ ^facebook/
^accounts/ ^facebook/login/token/$ [name='facebook_login_by_token']

Infine, python ./manage.py migrate per eseguire il commit delle migrazioni di Django-allauth nel Database.

Come al solito, per poter accedere alla tua app utilizzando qualsiasi social network che hai aggiunto, dovrai aggiungere i dettagli dell'account social della rete.

Accedi all'amministratore di Django ( localhost:8000/admin ) e in Social Applications aggiungendo i dettagli del tuo account social.

Potrebbe essere necessario disporre di account presso ciascun provider di autenticazione per ottenere dettagli da compilare nelle sezioni Applicazioni sociali.

Per configurazioni dettagliate di ciò che puoi avere e modificare, consulta la pagina Configurazioni .