OpenID w Django

Obsługa uwierzytelniania OpenID w Django za pomocą django_openidconsumer. Artykuł opisuje instalację i wykorzystanie tego modułu we własnych aplikacjach Django

OpenID to system użytkowników z jedną kluczową różnicą w porównaniu do dotychczas znanych ci systemów logowania i kont na stronach www. Wystarczy jedno konto OpenID by móc "logować" się na wszystkich serwisach wspierających OpenID. Logujesz się tylko na stronie konta openID a nie na np. 50 różnych stronach, dla których musisz zapamiętać loginy i hasła. By utworzyć konto openID wystarczy że zarejestrujesz się na openid.pl lub innej stronie obsługującej konta OpenID. Od strony kodu aplikacji obsługa OpenID może być mniej lub bardziej skomplikowana. Dzięki aplikacji Django autorstwa Simona Willsona obsługa OpenID w Django jest bardzo łatwa.

Instalacja

  • Django-openid wymaga python-openid. Pobierz i zainstaluj moduł ze strony projektu lub sprawdź repozytorium swojej dystrybucji (jeżeli używasz Linuksa)
  • Pobierz kod źródłowy z repozytorium subversion
svn checkout http://django-openid.googlecode.com/svn/trunk/ django-openid
  • Otrzymasz katalog django-openid zawierający dokumentację openid.html oraz katalog z aplikacją django_openidconsumer

Obsługa openID w Django

  • Przenieś aplikację django_openidconsumer do katalogu z aplikacjami twojego projektu Django. Zazwyczaj jest to katalog projektu.
  • Dodaj 'django_openidconsumer', do INSTALLED_APPS w settings.py
  • Dodaj 'django_openidconsumer.middleware.OpenIDMiddleware', do MIDDLEWARE_CLASSES w tym samym pliku
  • Stwórz tabele aplikacji wykonując python manage.py syncdb
  • W urls.py dodaj definicje odnośników:
(r'^openid/$', 'django_openidconsumer.views.begin'),
(r'^openid/complete/$', 'django_openidconsumer.views.complete'),
(r'^openid/signout/$', 'django_openidconsumer.views.signout'),
  • Gotowe, aplikacja gotowa do użycia
  • By zalogować się za pomocą openID przejdź na stronę /openid/, by wylogować - na /openid/signout/
  • Dzięki middleware obiekt request wzbogacił się o właściwość request.openid. Oto fragment widoku:
if request.openid:
		print "OpenID to %s" % str(request.openid)
	else:
		print "Brak"
I to byłoby na tyle. Teraz możesz tworzyć strony wykorzystujące openID dla uwierzytelniania użytkowników. Zwróć uwagę że dodatek ten nie używa systemu użytkowników i uprawnień. Dla administratorów i tak musisz (powinieneś) stosować klasyczny system użytkowników dostarczany przez Django.
blog comments powered by Disqus

Kategorie

Strony