我已经在酒瓶里登出了
@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中单击下面的链接,那就是工作了。
<a class="navbar-brand text-center" href = '/logout'>Exit</a>
我有1-8个玩家在烧瓶室,在游戏结束后,所有从这个房间必须注销和重定向到登录页面。我通过套接字从服务器任务发出,但是下面的代码显示401个未经授权的登录页面。
socket.on('leave', function(msg) {
window.location.href = 'http://my.site.ip.adress:8080/logout';
});
如何解决这个问题?
发布于 2020-03-09 18:52:25
我通过删除@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'))
https://stackoverflow.com/questions/60570566
复制相似问题