|||

Django – #36 – REST API cz. 11 – Rejestracja nowego użytkownika poprzez API

Wprowadzenie.

Rejestracja nowego użytkownika w naszej bazie danych może odbywać się na kilka sposobów. Może zdarzyć się tak, że logika biznesowa aplikacji oraz API, z którego będą korzystały aplikacje, będzie wymagała, aby rejestrowania nowego użytkownika było możliwe przy pomocy API. Dlatego w tym wpisie przedstawię jak zrealizować jakie założenie.

  1. Django REST API cz. 1– Tworzenie nowego projektu 
  2. Django REST API cz. 2 – ListAPIView 
  3. Django REST API cz. 3 – Wbudowana strona logowania
  4. Django REST API cz. 4 – Widoki generyczne
  5. Django REST API cz. 5 – ListCreateAPIView i konfiguracja dostępu
  6. Django REST API cz. 6 – Uszczegóławianie odpowiedzi  
  7. Django REST API cz. 7 – Określenie z góry wartości danych
  8. Django REST API cz. 8 – RetrieveDestroyAPIView
  9. Django REST API cz. 9 – RetrieveUpdateAPIView 
  10. Django REST API cz. 10 – Nadpisywanie zachowań metod przed/po operacji zapisu/usuwania
  11. Django REST API cz. 11 – Rejestracja nowego użytkownika poprzez API ⇐ 
  12. Django REST API cz. 12 – Uwierzytelnianie przy pomocy Tokena 
  13. Django REST API cz. 13 – Generowanie tokena dla istniejących użytkowników

Zakres artykułu.

  • Rejestracja nowego użytkownika poprzez API

Rejestracja nowego użytkownika poprzez API

W pierwszym kroku w pliku serializers.py zaimportujmy model User, który dostarcza nam Django.

Teraz stwórzmy klasę nowego serializera, który będzie obsługiwał model User. W tym serializerze będziemy musieli dodać dodatkowe argumenty do pola password. Argumenty należy dodać przy pomocy zmiennej extra_kwargs. Zmienna extra_kwargs jest słownikiem i jak możemy przeczytać w dokumentacji stanowi skrót pozwalający na określenie dowolnych dodatkowych argumentów słów kluczowych dla pól. Oznacza to, że nie trzeba jawnie deklarować pola w serializerze. Następnie w tej klasie musimy jeszcze nadpisać metodę create(), która to definiują, w jaki sposób tworzone są pełnoprawne instancje podczas wywoływania funkcji. Warto jeszcze zwrócić uwagę na tworzenie samego hasła i zastosowanie do tego celu metody set_password(). Metoda set_password(raw_password) przyjmuje jako argument surowe, czyli niezahashowane hasło, które wprowadza użytkownik i te hasło hashuje. Dopiero po tej czynności jesteśmy w stanie wywołać metodę save()

Więcej o innych metodach, które zaimplementowane są dla modelu User, możemy przeczytać w dokumentacji.

Po stworzeniu serializera zaimportujmy go w pliku z widokami views.py.

W następnym kroku stwórzmy nową klasę widoku.

Ostatnim krokiem jest stworzenie ścieżki url przy pomocy metody path path(’api/user/create’, views.UserCreate.as_view()).

Przejdźmy teraz do przetestowania aplikacji. Wprowadźmy do przeglądarki adres 127.0.0.1:8000/api/user/create.

W formularzu wprowadźmy pola UsernamePassword oraz Email address.

Strona powinna zwrócić nam informację z naszymi danymi, to jest username oraz email, przy czym zgodnie z tym, co dopisaliśmy w dodatkowych argumentach, nie wyświetli nam się password, ponieważ pole to ustawiliśmy jedynie do zapisu

Przejdźmy teraz do panelu administratora do tabeli, która zawiera naszych użytkowników. Sprawdźmy, czy baza ta zawiera nowo stworzonego użytkownik.

Jak możemy zobaczyć, w bazie danych znajduje się nowo stworzony użytkownik. Przejdźmy jeszcze do szczegółowych danych tego użytkownika.  

Zgodnie z oczekiwaniami, mamy uzupełnione pola Username, Email address oraz zahashowane Password.

Jeszcze na koniec zalogujmy się jako nasz nowy użytkownik.

W prawym roku na pasku nawigacyjnym widzimy nasz username

  1. Django REST API cz. 1– Tworzenie nowego projektu 
  2. Django REST API cz. 2 – ListAPIView 
  3. Django REST API cz. 3 – Wbudowana strona logowania
  4. Django REST API cz. 4 – Widoki generyczne
  5. Django REST API cz. 5 – ListCreateAPIView i konfiguracja dostępu
  6. Django REST API cz. 6 – Uszczegóławianie odpowiedzi  
  7. Django REST API cz. 7 – Określenie z góry wartości danych
  8. Django REST API cz. 8 – RetrieveDestroyAPIView
  9. Django REST API cz. 9 – RetrieveUpdateAPIView 
  10. Django REST API cz. 10 – Nadpisywanie zachowań metod przed/po operacji zapisu/usuwania
  11. Django REST API cz. 11 – Rejestracja nowego użytkownika poprzez API ⇐
  12. Django REST API cz. 12 – Uwierzytelnianie przy pomocy Tokena 
  13. Django REST API cz. 13 – Generowanie tokena dla istniejących użytkowników

Autor artykułu
Dominik Bednarski

Podobne wpisy

2 komentarze

  1. Witam,
    Mam pytanie, tutaj nowego użytkownika może założyć każdy.
    A jak zrobić aby tylko użytkownik zalogowany mógł zakładać nowych użytkowników?
    Pozdrawiam

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *