我是一个新的web开发人员,我正在为一个学校项目使用flask做一个web服务器。问题是,在登录之后,我想重定向到另一个需要身份验证的页面,并通过头传递授权令牌。但是,页面冻结,显示重定向…并说应该自动重定向(这不会发生)。
这是登录帖子和重定向页面的代码。
@app.route('/login', methods=['POST'])
def login_verify():
username = models.User.query.get(request.form['username'])
if username == None or username.verify_password(request.form['password']) == False:
abort(401)
redir = redirect(url_for('map'))
redir.headers = {'headers':username.encode_auth_token()}
return redir
@app.route('/map')
def map():
token = request.headers.get('headers')
if token == None or models.User.decode_auth_token(token) == None:
abort(403)
deviceList = list(db.session.query(models.Location.terminalId.distinct()).all())
return render_template('seeLocations.html',token = str(token),deviceList = deviceList)
我也尝试过这个方法(并且成功了),但是令牌不应该作为URL参数出现。
^{pr2}$
这里的主要问题是重写了重定向响应的
headers
。这个响应设置了类似Location
这样的头来告诉客户机下一步要去哪里,但是您通过赋值将它们清除掉。这也是客户端不能自动重定向的原因。在我想你想要的,也会起作用的是:
你可以利用这段时间来完成你想要的
在您的登录中,您可以将令牌保存到会话中,以后可以根据需要在路由中使用该令牌进行映射。在
你可以利用它的价值
你可以在程序中的任何地方访问它
^{pr2}$要从会话中取消设置值和键,可以使用
关于烧瓶会议的更多信息here
相关问题 更多 >
编程相关推荐