Как получить текущего пользователя с помощью get_redis_instance? - PullRequest
0 голосов
/ 27 мая 2019

Я использую каналы == 1.1.7 и asgi-redis == 1.4.3. Я хочу получить пользователя текущего сеанса с помощью этой команды:

user = get_redis_instance().get(id)

с функцией get_redis_instance, определенной следующим образом:

def get_redis_instance():
    from myproject.asgi import channel_layer
    return channel_layer._connection_list[0]

но не возвращает ни одного !!

код выше внутри потребителя:

class MyprojectWebsocket(WebsocketConsumer, WebsocketAuth):

    http_user = True
    channel_session = True
    channel_session_user = True

     def authenticate(self):
        if user.is_authenticated
        if get_redis_instance().get(id) != None:
            return True
        else:
             return False
    def connect(self, message, id):
        self.message.reply_channel.send({"accept": True})
        user = get_redis_instance().get(id)
        print("user: {}".format(user))
        if not self.authenticate(id):
            self.message.reply_channel.send({"text": json.dumps(
                {'status': False, 'message': 'You must login to the system!'})}, immediately=True)
            self.message.reply_channel.send({"accept": False})

с идентификатором - идентификатор текущего пользователя

...