使用flask-socketio和flask-login进行身份验证的问题

时间:2014-12-02 18:50:15

标签: flask socket.io flask-login flask-socketio

我正在使用Flask-Login来管理我的应用上的用户,并且我还让用户在登录时加入了一个房间。

登录完成后,前端会发出一条消息,供用户加入房间。

#User Room
@socketio.on('joinUserRoom')
@login_required
def join_user_room():
    room=current_user.slug
    join_room(room)

问题是这个login_required永远不会被验证。我未经授权就失败了。即使用户刚刚登录。当我删除@login_required并放入print(current_user)时,我得到匿名用户mixin。

('CURRENT USER JOIN ROOM', <flask_login.AnonymousUserMixin object at 0x7ff40410fcd0>)

我尝试了一堆疯狂的东西,但似乎没什么用,有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试使用命名空间,

#User Room
@socketio.on('joinUserRoom', namespace='/test')
@login_required
def join_user_room():
    room=current_user.slug
    join_room(room)
    emit('my response', {'data': username + ' has joined'}, room=room, broadcast=True)