gpt4 book ai didi

python - Flask 重定向时返回 JWT token

转载 作者:太空宇宙 更新时间:2023-11-03 14:04:05 25 4
gpt4 key购买 nike

我一直在关注this Flask pyjwt指南,但是我的网络应用程序有点类似于 Miguel's microblog example使用 render_template()redirect(url_for(...)) 进行导航。

我已经在我的应用程序中实现了编码和解码服务,但是我不知道如何使用 redirect() 正确地将编码的 JWT token 返回给用户

我的代码如下:

@app.route('/', methods=['GET', 'POST'])
def login():
login_form = LoginForm()
username = login_form.username.data
password = login_form.password.data

if is_user_valid(username, password):
return redirect(url_for('home'), auth_service.encode_token(username))
render_template('login.html', form=login_form)

我的问题是将身份验证 token 放在重定向方法中会导致出现一个页面,显示“正在重定向...您应该被重定向,如果没有,请单击此处”,这是我不想要的。我并不是特别希望将我的重定向方法更改为类似于 make_response(jsonify(...)) 的方法,因为当这是一个简单的登录页面时,我需要在前端处理这些响应.

我应该如何正确地将身份验证 token 返回给客户端?

最佳答案

通常,您将其附加到响应 header ,这是您的 redirect 方法返回的内容。

response = redirect(url_for('home'))
response.headers['X-JWT-TOKEN'] = auth_service.encode_token(username)
return response

但是,我不确定这在您使用 render_template 时的设置中是否非常有用,因为您无法在前端轻松访问这些 header 。

这里有两种选择:

  • 使您的登录端点成为 API。这样您就可以返回 token 供客户端代码以某种方式处理和存储它。
  • 放弃 JWT 并坚持使用 session 。我知道这不是您所期望的,但是除了构建 API 之外,基于 JWT 的身份验证并不是很有帮助。

关于python - Flask 重定向时返回 JWT token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49035561/

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