У меня настроена аутентификация в приложении Dash-plotly с опорой на колбу с использованием плагина Kong oauth2. Я хочу отправить заголовок аутентификации моему приложению dash по маршруту / dash. Я попытался отправить то же самое через бэкэнд колбы в заголовке респ.
from flask import Blueprint, Flask, flash, render_template, request, jsonify, Response, redirect, make_response, url_for, session
from flask_cors import CORS, cross_origin
from .. import server
import requests, logging, json, ast
login_controller = Blueprint(
'login_controller', __name__, template_folder='templates')
def check(username, password):
# test case
if(username == "admin" and password == "admin"):
session['logged_In'] = True
val = '1'
else:
flash("Invalid Username or/and password")
val = None
return val
@login_controller.route("/login", methods=['POST'])
def login():
if(request.method == 'POST'):
error = None
val = check(request.form['username'], request.form['password'])
if session.get("logged_In") and val:
# kong access token will be available here
Session[KONG_ACCESS_TOKEN]
resp = make_response(redirect("/dash"))
resp.headers['Authorization'] = "Bearer "+KONG_ACCESS_TOKEN
resp.set_cookie("login_auth", val, 60*15)
logging.info("Authentication successful")
return resp
else:
resp = make_response(redirect("/"))
logging.info("Authentication failed")
return resp
Я правильно получаю заголовок в ответе от маршрута входа в систему, но он не отображается в заголовке запроса, и я получаю несанкционированный ответ при перенаправлении на / dash
Вот мой app.py для приложения Dash
import flask, os, dash, logging
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
from ..server import server
from logging.handlers import RotatingFileHandler
external_stylesheets = [
"some stylesheets"
]
df = pd.read_csv(open(os.path.abspath(
"example.csv")), 'r', delimiter=',')
logging.info('Dash Application launched on Flask server')
app = dash.Dash(__name__, server=server,
external_stylesheets=external_stylesheets, url_base_pathname="/dash")
app.config.suppress_callback_exceptions = True
data = df.copy()
def indicator(text, id_value, size):
return html.Div(
[
html.Div(
text,
className="class1"
),
html.Div(
id_value,
id=text,
className="class2"
),
],
className=size,
)
Ценю любую помощь в этом отношении.