Junior — Middle
How do you implement authorization in your projects?
sobes.tech AI
Answer from AI
In my projects, authorization is usually implemented via JWT (JSON Web Tokens) or sessions.
Example using Flask and 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()
This approach allows secure transmission of user information and access rights.