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
pip install flask pyjwt
Token Oluşturma
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
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.