首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不能在js +烧瓶上重定向

不能在js +烧瓶上重定向
EN

Stack Overflow用户
提问于 2020-03-06 19:39:42
回答 1查看 87关注 0票数 0

我已经在酒瓶里登出了

代码语言:javascript
运行
复制
@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中单击下面的链接,那就是工作了。

代码语言:javascript
运行
复制
<a class="navbar-brand text-center" href = '/logout'>Exit</a>

我有1-8个玩家在烧瓶室,在游戏结束后,所有从这个房间必须注销和重定向到登录页面。我通过套接字从服务器任务发出,但是下面的代码显示401个未经授权的登录页面。

代码语言:javascript
运行
复制
socket.on('leave', function(msg) {
    window.location.href = 'http://my.site.ip.adress:8080/logout';            
    });

如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-09 18:52:25

我通过删除@login_required来解决这个问题

现在,/logout看起来是这样的:

代码语言:javascript
运行
复制
@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'))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60570566

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档