РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
418 of 643 menu

Метод unauthorized_handler

Метод unauthorized_handler применяется к объекту LoginManager и принимает в качестве параметра функцию-обработчик. Эта функция будет вызвана вместо стандартного перенаправления на страницу входа, когда неавторизованный пользователь обращается к представлению, защищённому декоратором login_required. Обработчик должен вернуть ответ, который будет отправлен клиенту.

Синтаксис

@login_manager.unauthorized_handler def unauthorized(): # code

Пример

Давайте создадим простое приложение с защищённым маршрутом и собственным обработчиком для неавторизованных пользователей:

from flask import Flask, redirect, url_for from flask_login import LoginManager, login_required app = Flask(__name__) app.secret_key = 'abcde' login_manager = LoginManager() login_manager.init_app(app) @login_manager.unauthorized_handler def unauthorized(): return redirect(url_for('login')) @app.route('/') def index(): return 'hello' @app.route('/login') def login(): return 'login page' @app.route('/profile') @login_required def profile(): return 'profile page'

При обращении неавторизованного пользователя к адресу /profile сработает обработчик unauthorized и произойдёт перенаправление на страницу входа.

Пример

Давайте вернём собственное сообщение вместо перенаправления:

from flask import Flask from flask_login import LoginManager, login_required app = Flask(__name__) app.secret_key = 'abcde' login_manager = LoginManager() login_manager.init_app(app) @login_manager.unauthorized_handler def unauthorized(): return 'access denied' @app.route('/') def index(): return 'hello' @app.route('/profile') @login_required def profile(): return 'profile page'

Результат выполнения кода для адреса /profile:

"access denied"

Смотрите также

  • класс LoginManager,
    который управляет аутентификацией в приложении
  • метод login_required,
    который защищает представления от неавторизованных пользователей
  • атрибут login_view,
    который задаёт имя представления для входа
  • атрибут login_message,
    который задаёт сообщение для неавторизованных пользователей
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить