Как добавить заголовок аутентификации в приложение Dash-plotly с бэкэндом при работе с Kong при использовании oauth2? - PullRequest
0 голосов
/ 03 июля 2019

У меня настроена аутентификация в приложении 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,
    )

Ценю любую помощь в этом отношении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...