无法在 js + Flask 上重定向
Can't redirect on js + Flask
我在 Flask url 中用于注销
@app.route('/logout', methods = ['GET', 'POST'])
@login_required
def logout():
leave_room(str(current_user.code), sid = current_user.name, namespace='/')
socketio.emit('left_user', current_user.name, room=str(current_user.code))
db.session.delete(Users.query.filter_by(name=current_user.name).first())
db.session.commit()
logout_user()
flash('You are logged out', 'success')
return redirect(url_for('login'))
如果我点击下方 html 中的 link 就可以了
<a class="navbar-brand text-center" href = '/logout'>Exit</a>
我在烧瓶房间里有 1-8 个玩家,游戏结束后,这个房间里的所有人都必须注销并重定向到登录页面。我通过套接字从服务器任务发出,但下面的代码显示 401 Unauthorized 而不是登录页面
socket.on('leave', function(msg) {
window.location.href = 'http://my.site.ip.adress:8080/logout';
});
如何解决这个麻烦?
我通过删除@login_required
解决了这个问题
现在 /logout 看起来像这样:
@app.route('/logout', methods = ['GET', 'POST'])
def logout():
if current_user.is_anonymous:
return redirect(url_for('login'))
else:
leave_room(str(current_user.code), sid = current_user.name, namespace='/')
socketio.emit('left_user', current_user.name, room=str(current_user.code))
db.session.delete(Users.query.filter_by(name=current_user.name).first())
db.session.commit()
logout_user()
flash('You are logged out', 'success')
return redirect(url_for('login'))
我在 Flask url 中用于注销
@app.route('/logout', methods = ['GET', 'POST'])
@login_required
def logout():
leave_room(str(current_user.code), sid = current_user.name, namespace='/')
socketio.emit('left_user', current_user.name, room=str(current_user.code))
db.session.delete(Users.query.filter_by(name=current_user.name).first())
db.session.commit()
logout_user()
flash('You are logged out', 'success')
return redirect(url_for('login'))
如果我点击下方 html 中的 link 就可以了
<a class="navbar-brand text-center" href = '/logout'>Exit</a>
我在烧瓶房间里有 1-8 个玩家,游戏结束后,这个房间里的所有人都必须注销并重定向到登录页面。我通过套接字从服务器任务发出,但下面的代码显示 401 Unauthorized 而不是登录页面
socket.on('leave', function(msg) {
window.location.href = 'http://my.site.ip.adress:8080/logout';
});
如何解决这个麻烦?
我通过删除@login_required
解决了这个问题现在 /logout 看起来像这样:
@app.route('/logout', methods = ['GET', 'POST'])
def logout():
if current_user.is_anonymous:
return redirect(url_for('login'))
else:
leave_room(str(current_user.code), sid = current_user.name, namespace='/')
socketio.emit('left_user', current_user.name, room=str(current_user.code))
db.session.delete(Users.query.filter_by(name=current_user.name).first())
db.session.commit()
logout_user()
flash('You are logged out', 'success')
return redirect(url_for('login'))