【问题标题】:how to write @token_required function using sqlalchemy core?如何使用 sqlalchemy 核心编写@token_required 函数?
【发布时间】:2022-11-10 08:50:11
【问题描述】:

我编写了一个函数来使用 uid(uuid) 获取用户详细信息,但是如何为此添加 @token_required 功能?

正如我在大多数资源中看到的那样,人们使用普通的 sqlalchmey 完成了它,但我已经实现了这个使用 SqlAlchemy 核心.

我是新手,因为我无法解决这个问题,所以没有取得进展。请帮忙!!

登录代码

@app.route('/login', methods=['POST'])
def login():

    auth = user_schema.load(request.get_json())

    user_name = auth['user_name']
    password = auth['password']
    conn = engine.connect()
    results = conn.execute(text("SELECT id, user_name, password, email_address, dob, uid FROM user WHERE (user_name = :user_name)"), {
                           "user_name": user_name})
    # print(results)
    result_dict = [dict(u) for u in results.fetchall()]
    print(result_dict[0])
    data = result_dict[0]
    print("data :", data)
    # return result_dict[0]

    if data['user_name'] != auth['user_name']:
        return make_response('Could not verify user, Please signup!', 401, {'WWW-Authenticate': 'Basic-realm= "No user found!"'})

    if check_password_hash(data['password'], auth['password']):
        token = jwt.encode({'uid': data['uid']},
                           app.config['SECRET_KEY'], 'HS256')
        return make_response(jsonify({'token': token}), 201)

    return make_response('Could not verify password!', 403, {'WWW-Authenticate': 'Basic-realm= "Wrong Password!"'})

user_detail 路由


@app.route('/users/<uid>', methods=['GET'])
def profile_view(uid):
    print("user_details")
    conn = engine.connect()
    str_sql = text("""SELECT * FROM user WHERE uid = uid""", {"uid": uid})
    results = conn.execute(str_sql).fetchall()
    print(results)
    return users_scehma.dump(results)

【问题讨论】:

    标签: flask sqlalchemy flask-sqlalchemy pyjwt


    【解决方案1】:

    我认为不可能直接从邮递员发送参数到查询字符串。我要求 Stack 社区回答这个问题。

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2014-01-20
    • 1970-01-01
    • 2010-11-03
    • 2014-06-15
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    • 2017-12-08
    • 2017-01-13
    相关资源
    最近更新 更多