Back to questions
Junior — Middle
61
Каким образом ты осуществляешь механизм авторизации в своих проектах?
Answer from AI
sobes.tech AI
В моих проектах авторизация обычно реализуется через JWT (JSON Web Tokens) или сессии.
Пример с использованием Flask и JWT:
from flask import Flask, request, jsonify
import jwt
import datetime
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
users = {'user1': 'password1'}
@app.route('/login', methods=['POST'])
def login():
auth = request.json
username = auth.get('username')
password = auth.get('password')
if users.get(username) == password:
token = jwt.encode({'user': username, 'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1)}, app.config['SECRET_KEY'])
return jsonify({'token': token})
return jsonify({'message': 'Invalid credentials'}), 401
@app.route('/protected')
def protected():
token = request.headers.get('Authorization')
if not token:
return jsonify({'message': 'Token is missing'}), 401
try:
data = jwt.decode(token, app.config['SECRET_KEY'], algorithms=['HS256'])
return jsonify({'message': f'Welcome {data["user"]}'})
except jwt.ExpiredSignatureError:
return jsonify({'message': 'Token expired'}), 401
except jwt.InvalidTokenError:
return jsonify({'message': 'Invalid token'}), 401
if __name__ == '__main__':
app.run()
Такой подход позволяет безопасно передавать информацию о пользователе и проверять права доступа.