Subjects

All subjects Django Java Python React Spring Boot JavaScript PHP
Sign Up Free
Interview question

How do you implement authentication and authorization? Authentication और authorization कैसे implement करते हैं?

Answer
# Django authentication
from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.models import User
from django.contrib.auth.decorators import login_required

def register(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = User.objects.create_user(username=username, password=password)
        return redirect('login')

def login_view(request):
    if request.method == 'POST':
        username = request.POST['username']
        password = request.POST['password']
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('home')

def logout_view(request):
    logout(request)
    return redirect('login')

@login_required(login_url='login')
def dashboard(request):
    return render(request, 'dashboard.html')

# Flask authentication with Flask-Login
from flask_login import LoginManager, UserMixin, login_user, logout_user, login_required

login_manager = LoginManager()
login_manager.init_app(app)

class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(100), unique=True)
    password = db.Column(db.String(100))

@app.route('/login', methods=['POST'])
def login():
    data = request.json
    user = User.query.filter_by(username=data['username']).first()
    if user and check_password_hash(user.password, data['password']):
        login_user(user)
        return jsonify({'status': 'logged in'})

@app.route('/dashboard')
@login_required
def dashboard():
    return jsonify({'user': current_user.username})

# FastAPI JWT authentication
from fastapi import Depends, HTTPException
from fastapi.security import HTTPBearer, HTTPAuthCredentials
from jose import JWTError, jwt

security = HTTPBearer()

def verify_token(credentials: HTTPAuthCredentials = Depends(security)):
    token = credentials.credentials
    try:
        payload = jwt.decode(token, 'secret_key', algorithms=['HS256'])
        return payload
    except JWTError:
        raise HTTPException(status_code=401, detail='Invalid token')

@app.get('/protected')
async def protected(payload = Depends(verify_token)):
    return {'user': payload}
Django:
User.objects.create_user(username, password)
authenticate(request, username, password)
login(request, user)
logout(request)
@login_required decorator

Flask:
Flask-Login extension
login_user(user)
logout_user()
current_user

FastAPI:
JWT tokens
HTTPBearer security
Dependencies for authentication

Was this answer clear?