Сеанс обработки Python-Falcon

Я использую Python колбу для создания простого веб-приложения, в котором пользователь может найти путь, скажем localhost:8000/ и войдите. если вход выполнен успешно, отображается другая страница, но я хочу знать, как я могу перенаправить на главную страницу, если пользователь уже вошел в систему? Например, если я вхожу в первый раз, меня перенаправляют на главную страницу, и если я открываю вторую вкладку и снова нажимаю URL для входа в систему, я автоматически перенаправляюсь на главную страницу (так же, как gmail?).

class LoginPage(object):
    def on_get(self, req, resp, form={}):

1 ответ

Для очень простых приложений HTTP Basic Auth, вероятно, достаточно хорош. Настой делает это очень легко. Следующий декоратор, примененный к функции, доступной только для определенных пользователей, делает именно это:

from functools import wraps
from flask import request, Response

def check_auth(username, password):
    """This function is called to check if a username password combination is valid. """
    return username == 'admin' and password == 'secret'

def authenticate():
    """Sends a 401 response that enables basic auth"""
    return Response(
    'Could not verify your access level for that URL.\n'
    'You have to login with proper credentials', 401,
    {'WWW-Authenticate': 'Basic realm="Login Required"'})

def requires_auth(f):
    @wraps(f)
    def decorated(*args, **kwargs):
        auth = request.authorization
        if not auth or not check_auth(auth.username, auth.password):
            return authenticate()
        return f(*args, **kwargs)
    return decorated

Чтобы использовать этот декоратор, просто оберните функцию просмотра:

@app.route('/secret-page')
@requires_auth
def secret_page():
    return render_template('secret_page.html')

Если вы используете базовую аутентификацию с mod_wsgi, вам нужно будет включить перенаправление аутентификации, в противном случае apache потребляет необходимые заголовки и не отправляет его в ваше приложение: WSGIPassAuthorization.

Другие вопросы по тегам