Python ile Jwt Authentication Nasıl Yapılır? Fastapı ve Django Rehberi | Teknoloji, Yapay Zekâ ve Oyun Forumu | sanalordu.com

Python ile Jwt Authentication Nasıl Yapılır? Fastapı ve Django Rehberi

Python ile Jwt Authentication Nasıl Yapılır? Fastapı ve Django Rehberi

Cyber Kraliçe

Kayıtlı Kullanıcı
Puan 0
Çözümler 0
Katılım
9 Ağu 2026
Mesajlar
167
Tepkime puanı
11
Cyber Kraliçe
🎯 Bu Yazıda Neler Öğreneceksiniz?
- JWT (JSON Web Token) nedir ve nasıl çalışır?
- FastAPI ve Django ile JWT kimlik doğrulama süreçleri
- Adım adım uygulamalı rehber ve örnek kodlar

### JWT Nedir?

JSON Web Token (JWT), iki taraf arasında güvenli bir şekilde bilgi iletmek için kullanılan bir açık standarttır. JWT, içerdiği bilgilerin doğruluğunu ve bütünlüğünü sağlamak için dijital imza kullanır. Genellikle kullanıcı kimlik doğrulama süreçlerinde kullanılır; örneğin, bir kullanıcı giriş yaptığında, sunucu ona bir JWT verir ve bu token, daha sonraki isteklerde kimlik doğrulama için kullanılır.

### FastAPI ile JWT Authentication

FastAPI, modern ve hızlı bir Python web çerçevesidir. JWT ile kimlik doğrulama yapmak için aşağıdaki adımları izleyebilirsiniz.

#### 1. Gerekli Kütüphanelerin Yüklenmesi

```bash
pip install fastapi uvicorn pyjwt
```

#### 2. JWT Token Oluşturma

FastAPI uygulamanızda bir endpoint oluşturun. Bu endpoint, kullanıcı adı ve şifre alacak ve doğru ise bir JWT token döndürecektir.

```python
from fastapi import FastAPI, Depends, HTTPException
from pydantic import BaseModel
import jwt
import datetime

app = FastAPI()
SECRETKEY = "yoursecretkey"

class User(BaseModel):
username: str
password: str

def createjwttoken(user: User):
tokendata = {
"sub": user.username,
"exp": datetime.datetime.utcnow() + datetime.timedelta(hours=1)
}
token = jwt.encode(tokendata, SECRETKEY, algorithm="HS256")
return token

@app.post("/token")
def login(user: User):
if user.username == "test" and user.password == "test": # Basit bir doğrulama
return {"accesstoken": createjwttoken(user)}
raise HTTPException(statuscode=401, detail="Invalid credentials")
```

#### 3. Token ile Korunan Endpoint Oluşturma

Şimdi, JWT token ile korunan bir endpoint oluşturun. Bu endpoint, yalnızca geçerli bir token ile erişilebilir.

```python
def getcurrentuser(token: str = Depends(oauth2scheme)):
try:
payload = jwt.decode(token, SECRETKEY, algorithms=["HS256"])
return payload["sub"]
except jwt.PyJWTError:
raise HTTPException(statuscode=401, detail="Invalid token")

@app.get("/users/me")
def readusersme(currentuser: str = Depends(getcurrentuser)):
return {"username": currentuser}
```

### Django ile JWT Authentication

Django, popüler bir Python web framework'üdür. Django'da JWT kimlik doğrulama yapmak için `djangorestframework-simplejwt` kütüphanesini kullanabilirsiniz.

#### 1. Gerekli Kütüphanelerin Yüklenmesi

```bash
pip install djangorestframework djangorestframework-simplejwt
```

#### 2. Ayarları Yapma

`settings.py` dosyanıza `RESTFRAMEWORK` ve `SIMPLEJWT` ayarlarını ekleyin:

```python
RESTFRAMEWORK = {
'DEFAULTAUTHENTICATIONCLASSES': (
'restframeworksimplejwt.authentication.JWTAuthentication',
),
}

SIMPLEJWT = {
'ACCESSTOKENLIFETIME': timedelta(minutes=5),
'REFRESHTOKENLIFETIME': timedelta(days=1),
}
```

#### 3. URL Yönlendirmeleri

`urls.py` dosyanıza JWT token oluşturma ve yenileme URL'lerini ekleyin:

```python
from django.urls import path
from restframeworksimplejwt.views import TokenObtainPairView, TokenRefreshView

urlpatterns = [
path('api/token/', TokenObtainPairView.asview(), name='tokenobtainpair'),
path('api/token/refresh/', TokenRefreshView.asview(), name='tokenrefresh'),
]
```

#### 4. Korunan Endpoint Oluşturma

JWT ile korunan bir endpoint oluşturmak için, view fonksiyonunuza `IsAuthenticated` sınıfını ekleyebilirsiniz:

```python
from restframework.permissions import IsAuthenticated
from restframework.views import APIView
from restframework.response import Response

class UserView(APIView):
permissionclasses = [IsAuthenticated]

def get(self, request):
return Response({"message": "Welcome, {}".format(request.user.username)})
```

### Sonuç

JWT, kullanıcı kimliğini güvenli bir şekilde doğrulamak için etkili bir yöntemdir. FastAPI ve Django ile JWT kullanarak, uygulamalarınızı güvenli hale getirebilir ve kullanıcı deneyimini artırabilirsiniz. Uygulama ve örnek kodlar ile birlikte, kendi projelerinizde bu yöntemleri kolayca uygulayabilirsiniz.
 

SanalOrdu'ya Hoş Geldiniz!

💻 Teknoloji dünyasına hoş geldiniz! 🤖 Yapay zekâ, yazılım, donanım, siber güvenlik, oyun ve daha fazlasını keşfedin. 🚀 Ücretsiz üye olun, konulara katılın, soru sorun ve bilgilerinizi paylaşın!

Ücretsiz Üye Ol

GÜNÜN SÖZÜ

🛡️ GÜNÜN SİBER GÜVENLİK & TEKNOLOJİ İPUCU

Veriler yükleniyor...

Geri