Uwierzytelnianie tokenami i JWT
Bezpieczne uwierzytelnianie klientów API
Uwierzytelnianie tokenami i JWT to bezpłatna lekcja Django Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Django Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Django Academy zawiera 4 lekcji w sumie.
API potrzebuje uwierzytelniania bezstanowego
Przeglądarki używają sesji, ale klienci API często nie mają plików cookie. Uwierzytelnianie tokenem pozwala klientowi potwierdzać swoją tożsamość przy każdym żądaniu.
Jak działa token
Użytkownik loguje się raz i otrzymuje ciąg tokenu. Wysyła go z każdym żądaniem, a DRF przypisuje go z powrotem do właściwego użytkownika.
Włączanie TokenAuthentication
Dodaj aplikację authtoken i włącz TokenAuthentication, aby DRF wiedział, że ma odczytywać tokeny z przychodzących żądań.
INSTALLED_APPS += ['rest_framework.authtoken']
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework.authentication.TokenAuthentication',
],
}Wydawanie tokenu
DRF udostępnia wbudowany widok obtain_auth_token. Wyślij do niego nazwę użytkownika i hasło metodą POST, a zwróci token tego użytkownika.
from rest_framework.authtoken.views import obtain_auth_token
urlpatterns = [
path('api-token-auth/', obtain_auth_token),
]Wysyłanie tokenu
Klient umieszcza token w nagłówku Authorization, poprzedzając go słowem Token, przy każdym chronionym wywołaniu. 🔑
Authorization: Token 9944b09199c62bcf9418ad846dd0e4Ograniczenie prostych tokenów
Token DRF nigdy nie wygasa i jest jedynie wyszukiwaniem w bazie danych. W większych systemach JWT zapewnia wygasanie oraz dane zawarte bezpośrednio w tokenie.
Co zawiera JWT
JSON Web Token to podpisany ciąg zawierający dane, takie jak identyfikator użytkownika i czas wygaśnięcia. Serwer ufa mu bez odwoływania się do bazy danych.
Dodawanie SimpleJWT
Zainstaluj djangorestframework-simplejwt i zarejestruj jego klasę uwierzytelniania, aby zamienić tokeny na JWT.
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_simplejwt.authentication.JWTAuthentication',
],
}Tokeny dostępu i odświeżania
SimpleJWT udostępnia dwa tokeny: krótkotrwały token access do wykonywania żądań oraz token odświeżania, który służy do uzyskania nowego tokenu dostępu.
Endpointy logowania JWT
Skonfiguruj TokenObtainPairView do logowania oraz TokenRefreshView do odnawiania tokenu, a przepływ JWT będzie gotowy.
from rest_framework_simplejwt.views import (
TokenObtainPairView, TokenRefreshView)
urlpatterns = [
path('token/', TokenObtainPairView.as_view()),
path('token/refresh/', TokenRefreshView.as_view()),
]Wysyłanie tokenu Bearer
Klienci JWT używają schematu Bearer w nagłówku Authorization zamiast słowa Token stosowanego przez tokeny DRF. 🎟️
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9Szybkie sprawdzenie
Tokeny DRF i JWT różni jedna kluczowa cecha.
Podsumowanie: potwierdzanie tożsamości
Nauczyli się Państwo uwierzytelniać klientów API za pomocą tokenów DRF, gdy liczy się prostota, oraz JWT, gdy potrzebne są wygasanie i skalowalność. Oba typy wysyła się w nagłówku Authorization. 🎉
Często zadawane pytania
Czy lekcja „Uwierzytelnianie tokenami i JWT” jest bezpłatna?
Tak — pełny tekst „Uwierzytelnianie tokenami i JWT” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Django Academy, przejdź na CoddyKit PRO. Kurs Django Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Uwierzytelnianie tokenami i JWT”?
Bezpieczne uwierzytelnianie klientów API Ćwiczysz Django Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Django Academy?
Nie wymagamy żadnego doświadczenia. Django Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Uwierzytelnianie tokenami i JWT”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Django Academy?
Tak. Każda lekcja Django Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- ModelViewSet i routery
- Uprawnienia i ograniczanie częstotliwości
- Uwierzytelnianie tokenami i JWT
- Filtrowanie, wyszukiwanie i stronicowanie