Как отправить заголовок авторизации от html до flask - PullRequest
0 голосов
/ 18 января 2020

У меня есть проект, который использует flask в бэкэнде и jinja и html для внешнего интерфейса.

Мне нужно отправить запрос с заголовком авторизации, и все мои маршруты читают этот заголовок в посмотреть, если это от действительного пользователя или нет?

def show_admin():
        data = request.headers.get('Authorization')
        # data = "TOKEN123"
        # واکشی اطلاعات مورد نیاز صفحه داشبورد
        content = {
            'user': mydb.selectalluser(),
            'doreh': mydb.selectalldoreh()
        }
        # چک میشود اگر توکن ارسالی توسط کاربری معتبر است یا خیر
        if str(data) == "TOKEN123":
            return render_template('admin/dashboard.html', content=content)
            # return hello
        else:
            # اگر توکن معتبر باشد صفحه لود خواهد شد
            return render_template('login/index.html')

В операторе if он проверяет, является ли токен действительным или нет. но ... 1. как сгенерировать запрос с заголовком авторизации 2. как сгенерировать токен для страницы входа

1 Ответ

0 голосов
/ 18 января 2020

Вы не можете контролировать заголовок запроса на стороне клиента (т.е. Authorization) на стороне сервера. IMO, вы хотите управлять входом пользователя в систему / состоянием сеанса, вы можете реализовать это с помощью Flask session, информация, хранящаяся на session, может быть получена между запросами (используйте Cook ie):

from flask import session


@app.route('/login')
def login():
    session['token'] = 'TOKEN123'  # store token, use it as a dict
    return 'login success'

@app.route('/admin')
def show_admin():
    if session.get('token') == "TOKEN123":  # get token
        return 'admin page'
    else:
        return 'login page'

Однако я бы порекомендовал использовать Flask -Login для управления сеансом пользователя.

...