Исключение Unauthorized
Исключение Unauthorized применяется для генерации
HTTP-ответа с кодом 401. Оно сигнализирует клиенту,
что запрос требует аутентификации, и обычно сопровождается
заголовком WWW-Authenticate. Исключение можно
вызвать вручную с помощью abort или возбудить
напрямую, передав опциональное описание ошибки.
Синтаксис
from werkzeug.exceptions import Unauthorized
Unauthorized(description=None, response=None)
Пример
Давайте вызовем исключение Unauthorized через
функцию abort при отсутствии авторизации:
from flask import Flask, abort, request
app = Flask(__name__)
@app.route('/')
def index():
token = request.args.get('token')
if token != 'abcde':
abort(401)
return 'hello'
Результат выполнения кода для адреса /?token=wrong:
401 Unauthorized
Пример
Давайте возбудим исключение Unauthorized напрямую
и передадим собственное описание ошибки:
from flask import Flask, request
from werkzeug.exceptions import Unauthorized
app = Flask(__name__)
@app.route('/')
def index():
token = request.args.get('token')
if token != 'abcde':
raise Unauthorized('user not authorized')
return 'hello'
Результат выполнения кода для адреса /?token=wrong:
401 Unauthorized: user not authorized
Пример
Давайте перехватим исключение Unauthorized
и вернём собственный ответ через обработчик ошибок:
from flask import Flask, request
from werkzeug.exceptions import Unauthorized
app = Flask(__name__)
@app.errorhandler(Unauthorized)
def handle_unauthorized(error):
return 'access denied', 401
@app.route('/')
def index():
token = request.args.get('token')
if token != 'abcde':
raise Unauthorized()
return 'hello'
Результат выполнения кода для адреса /?token=wrong:
access denied
Смотрите также
-
класс
HTTPException,
базовый класс всех HTTP-исключений Flask -
исключение
Forbidden,
которое возвращает ошибку 403 -
исключение
BadRequest,
которое возвращает ошибку 400 -
атрибут
code,
который хранит HTTP-код исключения