Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Django Social Auth ile Authentication ve Verile...

Django Social Auth ile Authentication ve Verilerin NoSQL'e yazılması

Özgür Yazılım ve Linux Günleri, 6 Nisan 2013'te yaptığım sunum.

Avatar for Serdar Dalgıç

Serdar Dalgıç

April 06, 2013

More Decks by Serdar Dalgıç

Other Decks in Programming

Transcript

  1. Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal Platform

    Verilerini NoSQL'e yazma Serdar Dalgıç Özgür Yazılım ve Linux Günleri, 6 Nisan 2013
  2. 2 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Ben Kimim? Serdar Dalgıç (@serdaroncode) Markafoni'de Yazılım Geliştirme Uzmanı http://github.com/serdardalgic http://www.serdardalgic.org/
  3. 3 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Neler Anlatacağım? - 1 Ne İstiyoruz? İhtiyaçlar Oauth Oauth nedir? Hangi Alternatiflerimiz Var? Django Kimlik Doğrulama Seçenekleri Sıkıntılar neler? Öne çıkanlar Niye Django Social Auth? İstatistikler
  4. 4 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Neler Anlatacağım? - 2 Django Social Auth'u Nasıl Kullanacağım? Kurulum settings.py ayarları urls.py ayarları DSA pipeline yapısı Sosyal Platform Verilerinin NoSQL'de tutulması Hangi veriler? Mongodb Postgresql – hstore ..
  5. 5 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Ne İstiyoruz?
  6. 6 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma İhtiyaçlar Yeni kullanıcıların üye olması Mevcut kullanıcıların kimlik doğrulaması İnsanlar Twitter/Facebook.. kullanıyorlar zaten. Bunları birleştirelim, insanlar sitemize Twitter/Facebook v.s. bilgileri ile girsinler.
  7. 7 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma OAUTH
  8. 8 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Oauth Nedir? Kullanıcıların, üye oldukları bir siteye/platforma giriş yaparak, başka bir site/platformla bu kullanıcı adı/şifre bilgilerini paylaşmadan, sadece izin verdikleri bilgileri paylaşmalarını sağlayan bir kimlik doğrulama protokolüdür. OpenID ile karıştırmamak gerekir. OpenID'deki gibi kullanıcının kimliğinin doğrulanması değil, asıl istemci siteye/platforma sadece belli bilgilere ulaşmalarını sağlayacak bir anahtar (access-token) verilmesidir.
  9. 9 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Hangi Alternatiflerimiz Var?
  10. 10 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Django Kimlik Doğrulama Seçenekleri Onlarcası daha: http://www.djangopackages.com/grids/g/authentication/
  11. 11 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Sıkıntılar Nelerdir? django-tastypie ve Piston, API'lar için. Birçoğunun testleri yok. Birçoğunun belgelendirmesi çok kötü. Kodu lezzetli, şık değil.
  12. 12 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Öne Çıkanlar Django Social Auth http://github.com/omab/django-social-auth http://django-social-auth.readthedocs.org/ Django Allauth http://github.com/pennersr/django-allauth
  13. 13 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Niye Django Social Auth? En çok indirilen paketlerden biri Hala devam eden geliştirme Kodu inceleyen, koda katkı veren bir çok göz
  14. 14 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Niye Django Social Auth? http://www.djangopackages.com/packages/p/django-social-auth/
  15. 15 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Django Social Auth'u Nasıl Kullanacağım?
  16. 16 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Kurulum pip install django-social-auth
  17. 17 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma settings.py Ayarları INSTALLED_APPS'e 'social_auth', satırını ekliyoruz. AUTHENTICATION_BACKENDS'e kullanacağımız social auth backendini ekliyoruz: 'social_auth.backends.contrib.github.GithubBackend', 'social_auth.backends.twitter.TwitterBackend', 'social_auth.backends.facebook.FacebookBackend', ...
  18. 18 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma settings.py Ayarları – Devam Kullanacağımız backend için OAuth anahtarlarını ekliyoruz: TWITTER_CONSUMER_KEY = '' TWITTER_CONSUMER_SECRET = '' FACEBOOK_APP_ID = '' FACEBOOK_API_SECRET = '' Django'nun öntanımlı kullanıcı modelinden başka bir kullanıcı modeli kullanıyorsak, onu belirtiyoruz (Django 1.5 sonrası): SOCIAL_AUTH_USER_MODEL = 'myapp.CustomUser' Ve daha bir çok farklı ayar: http://django-social-auth.readthedocs.org/en/latest/configuration.html
  19. 19 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma urls.py Ayarları urlpatterns = patterns(“”, url('', include('social_auth.urls')), )
  20. 20 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Django Social Auth Pipeline Yapısı
  21. 21 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Pipeline Kullanıcı oluşturma, eşleştirme ve temel veri toplama için yazılmış, birbirini takip eden, pipeline boyunca user, socialauth_user v.s. gibi değişkenleri güncelleyen yapı. Öntanımlı pipeline: ( 'social_auth.backends.pipeline.social.social_auth_user', #'social_auth.backends.pipeline.associate.associate_by_email', 'social_auth.backends.pipeline.user.get_username', 'social_auth.backends.pipeline.user.create_user', 'social_auth.backends.pipeline.social.associate_user', 'social_auth.backends.pipeline.social.load_extra_data', 'social_auth.backends.pipeline.user.update_user_details' ) Ekleme, çıkarma yapabiliyorsunuz. http://django-social-auth.readthedocs.org/en/latest/pipeline.html
  22. 22 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Sosyal Platform Verilerinin NoSQL'de Tutulması
  23. 23 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Hangi Veriler? Kullandığınız OAuth destekli site size ne sunuyorsa + siz ne istiyorsanız. Genelde settings.py altındaki BACKEND_EXTENDED_PERMISSIONS adlı bir listede tutuyorsunuz: BEHANCE_EXTENDED_PERMISSIONS = ['email', ..] FACEBOOK_EXTENDED_PERMISSIONS = ['email', 'user_birthday'] SOUNDCLOUD_EXTENDED_PERMISSIONS = [.., ..] STACKOVERFLOW_EXTENDED_PERMISSIONS = [.., ..] .. Detaylar: http://django-social-auth.readthedocs.org/en/latest/backends/index.html
  24. 24 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Mongodb pymongo kullanarak. http://api.mongodb.org/python/current/tutorial.html
  25. 25 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Postgresql - Hstore Postgresql veritabanında tek bir sütunda hash tipi veri tutarak NoSQL'in avantajlarından faydalanmanızı sağlar. Hstore desteği için CREATE EXTENSION hstore; diyerek hstore desteğini aktif hale getirmeniz gerekmektedir. Daha detaylı bilgi için: http://neilmiddleton.com/the-wonders-of-hstore/
  26. 26 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Sorular?
  27. 27 Django Social Auth ile Kimlik Doğrulama ve Gelen Sosyal

    Platform Verilerini NoSQL'e yazma Kaynaklar • Lighting talk on django-social-auth by Daniel Greenfield: http://www.slideshare.net/pydanny/lighting-talk-on-djangosocialauth • OAuth article on wikipedia: http://en.wikipedia.org/wiki/OAuth