【问题标题】:How to send authorization header from html to flask如何将授权标头从 html 发送到烧瓶
【发布时间】:2023-04-02 21:15:02
【问题描述】:

我有一个项目在后端使用烧瓶,在前端使用 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. 如何生成包含 Authorization 头的请求 2. 如何生成登录页面的token

【问题讨论】:

    标签: python flask authorization jinja2 token


    【解决方案1】:

    您无法在服务器端控制客户端请求标头(即Authorization)。 IMO,你想要的是管理用户登录/会话状态,你可以用 Flask session 来实现,session 上存储的信息可以在请求之间获取(使用 Cookie):

    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 来处理用户会话管理。

    【讨论】:

    • 谢谢。你对令牌管理有什么建议。如何为每次登录生成令牌并检查令牌是否有效
    • Flask-Login 会为你做这件事。
    猜你喜欢
    • 2017-12-26
    • 2015-10-11
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多