Python ile JWT Authentication

Modern API sistemlerinde kullanıcı doğrulama için en güvenli yöntemlerden biri JWT kullanmaktır. Session yerine token tabanlı doğrulama sağlar.

JWT Nedir?

JWT, kullanıcı doğrulamasını stateless şekilde yapan bir güvenlik mekanizmasıdır.

💡 Mikroservis mimarilerinde yaygın kullanılır.

Kurulum

Gerekli Kütüphaneler
pip install flask pyjwt

Token Oluşturma

JWT Generate
import jwt
import datetime

SECRET = "SECRET_KEY"

def create_token(user_id):
    payload = {
        "user_id": user_id,
        "exp": datetime.datetime.utcnow() + datetime.timedelta(hours=1)
    }
    return jwt.encode(payload, SECRET, algorithm="HS256")

Token Doğrulama

def verify_token(token):
    try:
        decoded = jwt.decode(token, SECRET, algorithms=["HS256"])
        return decoded
    except:
        return None

Flask Login Endpoint

Login API
from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/login', methods=['POST'])
def login():
    data = request.json
    if data['username']=="admin":
        token = create_token(1)
        return jsonify({"token": token})

Protected Endpoint

@app.route('/protected')
def protected():
    token = request.headers.get("Authorization")
    user = verify_token(token)

    if user:
        return jsonify({"message":"Yetkili erişim"})
    else:
        return jsonify({"error":"Yetkisiz"}),401

Kullanım Alanları

  • API güvenliği
  • Mobil uygulamalar
  • SPA uygulamaları
  • Mikroservis sistemleri
İpucu: Token sürelerini kısa tutmak güvenliği artırır.