Встречается на собеседованиях • сегодня

Как можно авторизовать пользователя

В Python есть несколько способов авторизации пользователей:

  1. Базовая HTTP-авторизация (используется в веб-приложениях):
python
from flask import request

@app.route('/login')
def login():
    auth = request.authorization
    if auth and auth.username == 'admin' and auth.password == 'secret':
        return 'Logged in!'
    return 'Invalid credentials', 401
  1. JWT-токены (для API):
python
import jwt
from datetime import datetime, timedelta

def generate_token(user_id):
payload = {
'user_id': user_id,
'exp': datetime.utcnow() + timedelta(hours=1)
}
return jwt.encode(payload, 'secret_key', algorithm='HS256')

text

3. **OAuth** (через сторонние сервисы):
```python
from authlib.integrations.flask_client import OAuth

oauth = OAuth(app)
google = oauth.register('google',
    client_id='...',
    client_secret='...',
    authorize_url='...',
    access_token_url='...',
    client_kwargs={'scope': 'email profile'}
)
  1. Сессии (для веб-приложений):
python
from flask import session

@app.route('/login', methods=['POST'])
def login():
    session['user_id'] = user.id  # Сохраняем ID пользователя в сессии

Выбор метода зависит от типа приложения (веб, API), требований безопасности и масштаба проекта. Для простых случаев подойдут сессии, для API - JWT, для интеграции с соцсетями - OAuth.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы