OAuth kullanarak Django'da sosyal medya hesaplarıyla güvenli bir oturum açma sisteminin nasıl oluşturulacağını öğrenin.

Sosyal kimlik doğrulama, bir kişinin kimliğini şifre kullanmak yerine bir sosyal hesap aracılığıyla doğrulamanın bir yoludur. Web geliştirmede, kullanıcıların kimliklerini parola olmadan doğrulamak her zaman faydalıdır. Bu şekilde Google, Twitter veya GitHub gibi sosyal uygulamalar aracılığıyla giriş yapabilirler.

Sosyal kimlik doğrulamayı etkinleştirmek, parolayla ilgili yaygın güvenlik açıkları riskini azaltarak uygulamanızın güvenliğini artırmanın harika bir yoludur. Ayrıca, kullanıcıların çok fazla şifreyi hatırlamasına gerek kalmayacağı için uygulamanızın kullanıcı deneyimini de iyileştirecektir.

Django'da Kullanıcı Kimlik Doğrulaması

Django, geliştiricilerin birlikte çalışabilmesi için varsayılan bir kimlik doğrulama sistemi sağlar. Ancak bu kimlik doğrulama sistemi, kullanıcının kullanıcı adı, e-posta adresi, şifresi, adı ve soyadı gibi verilerin manuel olarak toplanmasını içeren geleneksel kimlik doğrulamayı kullanır.

instagram viewer

Tasarım gereği, Django'nun kimlik doğrulama sistemi çok geneldir ve günümüzde çoğu web kimlik doğrulama sisteminde kullanılan pek çok özelliği sağlamamaktadır. Bunu tamamlamak için aşağıdaki gibi üçüncü taraf paketleri kullanmak isteyeceksiniz: django-allauth paket.

Django'da OAuth Nasıl Etkinleştirilir?

Bir Django uygulamasında OAuth kullanarak kullanıcılarınızın kimliğini doğrulamak için, adlı bir Django paketini kullanabilirsiniz. django-allauth.

Django Allauth, Django projeniz için kimlik doğrulama, kayıt, hesap yönetimi ve üçüncü taraf (sosyal) hesap kimlik doğrulamasını yöneten bir pakettir. Aşağıdaki adımlar, Django projeniz için Django Allauth'u kurma konusunda size yol gösterecektir.

Adım 1: Django-Allauth'u Kurun ve Kurun

Eğer henüz bunu yapmadıysanız, sanal bir ortam yarat ve yükle django-allauth pip aracılığıyla:

pip install django-allauth

Çalışması için Python 3.5 veya üzerini ve Django 2.0 veya üzerini kullanmanız gerektiğini unutmayın.

Adım 2: Django-Allauth için Django'ya Gerekli Uygulamaları Ekleyin

Kurulumdan sonra django-allauth, aç ayarlar.py dosyanızı oluşturun ve aşağıdaki uygulamaları cihazınıza ekleyin. INSTALLED_APPS liste:

INSTALLED_APPS = [


Add your other apps here

# Djang Allauth configuration apps
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
]

Yukarıdaki uygulamalardan bazıları hakkında dikkat edilmesi gereken bazı noktalar şunlardır:

  • allauth.socialaccount uygulaması, kullanıcıların X (eski adıyla Twitter), Instagram, GitHub ve diğerleri gibi sosyal uygulamalar aracılığıyla oturum açmasına olanak tanıyacak.
  • django.contrib.sites app, aşağıdakiler için gerekli olan yerleşik bir Django çerçevesidir: django-allauth çalışmak. Uygulama, tek bir Django projesi içerisinde birden fazla siteyi yönetme ve ayırt etme yeteneği sağlar. Nasıl çalıştığını şu adrese bakarak anlayabilirsiniz: Django belgeleri.

3. Adım: Projeniz için Kimlik Doğrulama Arka Uçlarını Tanımlayın

Bir sonraki adım, kullanıcılarınızın kimliğini nasıl doğrulamak istediğinizi tanımlamaktır. Bunu yapılandırarak yapabilirsiniz AUTHENTICATION_BACKENDS senin içinde ayarlar.py dosya. İçin django-allauthşunları eklemelisiniz:

AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
]

Yukarıdaki kod parçacığı iki kimlik doğrulama arka ucunu tanımlar:

  1. İlki Django tarafından kullanılan varsayılandır. Bu, yönetici kullanıcının Django-allauth'un yapılandırmasından bağımsız olarak yönetici panelinde oturum açmasına olanak tanır.
  2. İkincisi, kimlik doğrulama arka ucunu tanımlar. django-allauth.

4. Adım: Site Kimliğinizi Ekleyin

Ayarlar dosyanıza sitenizin kimliğini eklemelisiniz. İşte bir örnek:

SITE_ID = 1

Varsayılan olarak adında bir site var. example.com yönetici panelinde. Bu siteyi değiştirmeye veya kendiniz için bir tane eklemeye karar verebilirsiniz. Her iki durumda da yönetici paneline giriş yapmalı ve Siteler uygulama.

Bir Django sitesinin site kimliğini almak için Komut Satırı Arayüzü (CLI) ve şu komutu çalıştırın:

python manage.py shell

Daha sonra bu betiği Python kabuğuna yazın:

from django.contrib.sites.models import Site

current_site = Site.objects.get_current()
site_id = current_site.id
site_name = current_site.name
print("Site ID:", site_id)
print("Site Name:", site_name)

Yukarıdaki kod sitenin adının yanı sıra kimliğini de yazdıracaktır.

5. Adım: URL'lerinizi Yapılandırın

Projenizde urls.py dosyası için URL modelini yapılandırın django-allauth. Bu nasıl görünmesi gerektiği:

from django.urls import path, include

urlpatterns = [
# Djang-allauth url pattern
path('accounts/', include('allauth.urls')),
]

Bu kurulumla geliştirme sunucunuzu başlatabilir ve şuraya gidebilirsiniz: http://127.0.0.1:8000/accounts/. eğer varsa HATA AYIKLAMA ayarlanır Doğruiçin kullanılabilir URL kalıplarının bir listesini görmelisiniz. django-allauth.

Yukarıdakileri yaptıysanız projeniz sosyal kimlik doğrulamasına hazır olmalıdır.

Django Uygulamanıza Google Girişi/Kayıt Nasıl Uygulanır?

Kurulumdan sonra django-allauth, kullanıcılarınızın Google gibi sosyal hesaplarında kimliklerini doğrulamalarına izin vermeye hazır olmalısınız.

1. Adım: Sosyal Hesap Sağlayıcınızı Yüklü Uygulamalarınıza Kaydedin

senin içinde ayarlar.py dosyasına sosyal hesap sağlayıcısını eklemelisiniz INSTALLED_APPS. Bu durumda Google'dır. Diğer seçenekler Instagram, X vb.'dir.

INSTALLED_APPS = [


Add your other apps here

# Social account provider (google)
'allauth.socialaccount.providers.google',
]

2. Adım: Google'da Müşteri Kimliğinizi ve Gizli Anahtarınızı Oluşturun

Bu adımı tamamlamak için bir Google hesabınızın oluşturulmuş olması gerekir. Bunu yaptıysanız aşağıdaki adımları izleyin:

  1. Şuraya gidin: Google Bulut konsolu yeni bir proje oluşturmak için. Öncelikle aşağıdaki resimde gösterilen açılır menüye tıklayın:
  2. Sonra, tıklayın YENİ PROJE:
  3. Projeniz için bir ad girin ve ardından YARATMAK düğme:
  4. Projeniz seçiliyken, üzerine tıklayın hamburger menüsü. Seçme API'ler ve Hizmetler, Daha sonra Kimlik bilgileri:
  5. Daha sonra yazan seçeneğe tıklayın ONAY EKRANINI YAPILANDIRIN ve seç Harici:
  6. Sonraki sayfada uygulamanız için bir ad girin ve gerektiğinde bir e-posta ekleyin. Bazı özelleştirmeler için yapılandırmaları da keşfedebilirsiniz. Bittiğinde, üzerine tıklayın KAYDET VE DEVAM ET.
  7. Sol taraftaki menüden Kimlik bilgileri. Bundan sonra tıklayın KİMLİK BİLGİLERİ OLUŞTURUN ve seç OAuth istemci kimliği.
  8. Ardından, Uygulama türü ve aynısı için bir ad girin. Bu eğitim için, Uygulama türü olacak Web uygulaması.
  9. Ardından, URI'leri ekleyin Yetkili JavaScript kaynakları Ve Yetkili yönlendirme URI'leri. Web sitenizin ana bilgisayarı JavaScript kaynakları olmalıdır ve sistem, kimlik doğrulamanın ardından kullanıcıları yönlendirme URI'sine yönlendirecektir. Yönlendirme URI'si genellikle şunları içermelidir: ana makine adınız/hesaplarınız/google/giriş/geri arama/. Geliştirme modu için şöyle olacaktır: http://127.0.0.1:8000/accounts/google/login/callback/. Tıklamak YARATMAK bir kez bittiğinde.
  10. Kimlik bilgilerini oluşturduktan sonra kopyalayabilirsiniz. Müşteri Kimliği veya İstemci sırrı güvenli bir yere kopyalayın veya JSON dosyaları olarak indirin.

Adım 3: İstemci Kimliğinizi ve Gizli Anahtarınızı Django Uygulamanıza Ekleyin

Gerekli kimlik bilgilerini oluşturduktan sonra şuraya gidin: http://127.0.0.1:8000/admin, seçme Sosyal uygulamalarve yeni bir sosyal uygulama oluşturun. Yeni bir sosyal uygulama oluşturmak için şu adımları izleyin:

  1. Bir sağlayıcı ekleyin. Sağlayıcı, kullanıcınızın kimliğini doğruladığınız uygulamayı ifade eder. Bu durumda Google, diğer durumda ise Snapchat olabilir.
  2. Yeni sosyal uygulamanız için bir ad girin. Mantıklı bir isim olduğundan emin olun
  3. Yapıştırın Müşteri Kimliği Google'dan kopyaladınız.
  4. İçin Gizli anahtar, yapıştırın İstemci sırrı Google'dan kopyaladınız.
  5. Anahtar alanı Google ile kimlik doğrulama için geçerli değildir; dolayısıyla dikkate almayın.
  6. Son olarak sosyal uygulamayı ilişkilendireceğiniz siteyi seçin.

4. Adım: Google Kimlik Doğrulamanızı Test Edin

Yönetici panelinizden çıkış yapın ve şuraya gidin: http://127.0.0.1:8000/accounts/login/. Google aracılığıyla giriş yapma seçeneğini göreceksiniz.

Onay ekranına yönlendirmek için üzerine tıklayın. Daha sonra oturum açmak için bir hesap seçin.

Bir hesap seçtikten sonra şuraya yönlendirileceksiniz: http://127.0.0.1:8000/accounts/profile/. Bu, uygulamanızın mükemmel çalıştığı anlamına gelir. Varsayılan şablonları değiştirmek için özel şablonlar oluşturabilirsiniz.

Django'da Sosyal Kimlik Doğrulamayla Kullanıcı Kaydını Geliştirme

Sosyal kimlik doğrulamayı etkinleştirmek, kullanıcılarınızın uygulamanıza kaydolurken harika bir deneyim yaşamalarına yardımcı olmanın harika bir yoludur. Django'da kimlik doğrulamayı etkinleştirmenin başka yolları da vardır ve kullanım durumunuz için en iyisinin ne olduğuna karar vermek için bunları incelemelisiniz.