Müzakirə

FastAPI ile Telegram Bildirim Botu Geliştirme: CORS ve JWT Kimlik Doğrulama

Başladan Celal · 07 Sen 2026 06:07 · 2 Baxış · 0 Cavablar
Mövzunu Açan #0
İş akışını hızlandırmak ve uygulama güvenliğini sağlamak adına FastAPI kullanarak Telegram bildirim botu geliştirmek oldukça yaygın bir ihtiyaç. Ancak, bu süreçte karşılaşılan temel sorunlardan biri CORS (Cross-Origin Resource Sharing) hataları ve JWT (JSON Web Token) tabanlı kimlik doğrulama yönetimi. Bu iki konu, sadece temel güvenlik ve uyumluluk açısından değil, aynı zamanda uygulamanın sürdürülebilirliği ve genişletilebilirliği için de kritik önem taşıyor.

İlk olarak, CORS hatası genellikle API'ye farklı bir origin’den (domain, port veya protokol farklılığı) gelen isteklerde ortaya çıkar. Bu durumda, FastAPI’nin CORSMiddleware kullanımıyla ilgili ayarları düzgün yapmanız gerekir. Örneğin, aşağıdaki gibi:

CODE
123456789101112python
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()

app.add_middleware(
    CORSMiddleware,
    allow_origins=["https://ornekdomain.com"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)


Burada, allow_origins parametresi, API'yi hangi domainlerin kullanabileceğini belirler. Eğer test ortamında geniş erişime izin vermek isterseniz, ["*"] kullanmak da mümkündür, ancak üretim ortamında güvenlik için daraltmak gerekir.

İkinci önemli konu ise JWT tabanlı kimlik doğrulama. Bu yöntemde, kullanıcılara veya sistemlere erişim sağlanmadan önce geçerli bir token alınır. API'ye gelen her istekte bu token, doğrulama ve yetkilendirme için kullanılır. FastAPI'de JWT kullanımı, OAuth2PasswordBearer ve PyJWT kütüphaneleriyle kolayca entegre edilir. Basit bir örnekle:

CODE
12345678910111213141516171819python
from fastapi import Depends, HTTPException, status
from fastapi.security import OAuth2PasswordBearer
import jwt

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

SECRET_KEY = "gizli_anahtar"
ALGORITHM = "HS256"

def verify_jwt(token: str = Depends(oauth2_scheme)):
    try:
        payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM])
        user_id: str = payload.get("sub")
        if user_id is None:
            raise HTTPException(status_code=401, detail="Geçersiz token")
        return user_id
    except jwt.PyJWTError:
        raise HTTPException(status_code=401, detail="Giriş yapmanız gerekiyor")


Bu fonksiyon, API uç noktalarınızda Depends(verify_jwt) şeklinde kullanılarak, erişim kontrolü yapılabilir. Ayrıca, token üretimi için ayrı bir endpoint oluşturulmalı ve kullanıcı bilgileriyle bağlantılı olarak JWT imzalanmalı.

Sonuç olarak, FastAPI ile Telegram bildirim botu geliştirirken, CORS ve JWT yönetimi kritik güvenlik ve uyumluluk sağlar. Bu ayarların doğru yapılandırılması, uygulamanızın hem güvenli hem de farklı platformlarla sorunsuz çalışmasını garanti eder. Bu konuların detaylarına hakim olmak, projelerinizi güvenlik ve performans açısından ileri seviyeye taşımanıza katkı sağlar.

Cavab vermək üçün daxil olmalısınız.

0 sitat seçildi