Flask - Скрытый редирект, как сделать маскировку URL в Flask? - PullRequest
0 голосов
/ 04 августа 2020

У меня есть задача, в которой мне нужно перенаправить на внешний URL-адрес, который затем будет перенаправлять POST обратно в приложение flask с телом. Это связано с авторизацией AD FS.

Однако я хочу скрыть в строке URL-адресов, которые я перенаправляю на внешний URL-адрес, в основном маскировку URL-адреса.

Вот пример кода, похожего на мой маршрут:

@oauth2_bp.route('/callback', methods=['GET', 'POST'])
def oauth2():
    id_token = request.form.get('id_token')
    if id_token:
        ...
    else:
        ...
        return redirect(url)

Есть идеи, как я могу выполнить sh это?

1 Ответ

0 голосов
/ 04 августа 2020

Я нашел здесь это расширение Flask -NoExtRef

В заголовке написано: 'Flask -NoExtRef - это расширение для Flask, которое добавляет возможность скрывать внешний URL-адрес для ваше приложение Flask. ' Однако это не скроет URL-адрес на странице URL-адреса браузера.

Вот как это работает в простом примере из DOCS:

from flask import Flask, abort, request, redirect
from flaskext.noextref import NoExtRef

app = Flask(__name__)

def handle_ext_url():
    url = request.args.get('url', None)
    if not url:
        abort(405)
    return redirect(url)

noext = NoExtRef(app, rule='/go/',
        view_func=handle_ext_url)

И вот как вы реализуете это в Jinja2:

{# replace all anchors in the text #}
{{ some_text_with_refs|hide_urls }}

{# replace of the specified anchor #}
{{ some_url|hide_url }}

Вот некоторые ответы, найденные в StackOverflow:

  1. Flask: Можно ли замаскировать URL-адрес переменными?
  2. Как скрыть переменные из flask маршрутизации URL?
...