gpt4 book ai didi

python - 使用模板渲染实现 flask_jwt_extended

转载 作者:行者123 更新时间:2023-12-05 09:13:55 24 4
gpt4 key购买 nike

再次尝试制作我的第一个 Flask 应用程序,这一次,(在我创建了我需要的每一个并且一切顺利之后)我试图用 flask_jwt_extended 保护一些端点,但我不能'在我的页面中找不到如何使用它们,文档主要是关于显示 JSON 消息,一些教程使用 postman ,而在我的例子中,我使用的是 HTML 模板。
例如,用户将他的凭据从登录页面发送到此端点:

@app.route('/login', methods=['POST'])
def UserLogin():
data = parser.parse_args()
current_user = UserModel.find_by_username(data['username'])
if not current_user:
return {'message': 'User {} doesn\'t exist'.format(data['username'])}

if UserModel.verify_hash(data['password'], current_user.password):
access_token = create_access_token(identity = data['username'])
refresh_token = create_refresh_token(identity = data['username'])
resp = jsonify({'login': True}) #I just added this line from the documentation
set_access_cookies(resp, access_token) # and this one
set_refresh_cookies(resp, refresh_token) # and this one
return redirect(url_for('results'))

else:
return {'message': 'Wrong credentials'}

当然,我在 results 端点添加了 @jwt_required 装饰器:

@app.route('/result',methods = ['POST','GET'])
@jwt_required
def results():
temp={}
if request.method == 'POST':
# some code to fill temp with values
return render_template('result.html',data=temp)

所以我得到了一个{
"msg": "缺少 cookie\"access_token_cookie\""
}

很明显,因为我没有发回 jwt,但如果在返回语句中发送它,我如何才能将用户重定向到我想要的页面?
而且我确实使用了 app.config['JWT_TOKEN_LOCATION'] = ['cookies']

最佳答案

您可能想要:

resp = make_response(redirect(url_for('results')))
set_access_cookies(resp, access_token)
set_refresh_cookies(resp, refresh_token)
return resp

我认为您不需要这一行! --> resp = jsonify({'login': True})

我花了一段时间才弄明白,不知道为什么这部分在 docs 中不清楚,那里的大多数示例只是直接返回 JSON

关于python - 使用模板渲染实现 flask_jwt_extended,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55296439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com