Реализовывал ли с нуля авторизацию
Да, реализовывал. Обычно авторизация включает несколько ключевых компонентов:
- Регистрация – хеширование пароля (например, с
bcryptилиargon2). - Аутентификация – проверка логина/пароля, генерация JWT или сессии.
- Авторизация – проверка прав (например, через декораторы или middleware).
Пример на Flask с JWT:
from flask import Flask, request, jsonify
import jwt
import datetime
from functools import wraps
app = Flask(__name__)
SECRET_KEY = "your-secret-key"
def token_required(f):
@wraps(f)
def decorated(*args, **kwargs):
token = request.headers.get('Authorization')
if not token:
return jsonify({"error": "Token missing"}), 403
try:
data = jwt.decode(token, SECRET_KEY, algorithms=["HS256"])
except:
return jsonify({"error": "Invalid token"}), 403
return f(*args, **kwargs)
return decorated
@app.route('/login', methods=['POST'])
def login():
auth = request.json
if auth['username'] == 'admin' and auth['password'] == 'password':
token = jwt.encode({
'user': auth['username'],
'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1)
}, SECRET_KEY)
return jsonify({"token": token})
return jsonify({"error": "Invalid credentials"}), 401
@app.route('/protected')
@token_required
def protected():
return jsonify({"message": "Access granted"})
Важно: HTTPS, защита от CSRF, валидация ввода, хранение токенов в secure cookies. Для прода лучше использовать готовые решения (Django Auth, OAuth2, Firebase Auth).
офферы быстрее!
Следующий вопрос
Это единственный вопрос по вашему фильтру