【发布时间】:2020-06-16 11:22:35
【问题描述】:
我有一个 websocket 路由器:
application = ProtocolTypeRouter({
'websocket':
AllowedHostsOriginValidator(
AuthMiddlewareStack(
URLRouter(
[
url("ws/", Consumer)
]
)
)
)
})
我通过向 websocket 发送命令来登录用户。用户登录如下:
if cmd == 'login':
user = await database_sync_to_async(authenticate)(consumer.scope, email=request['eMail'], password=request['pass'])
if user is not None:
# login the user to this session.
await login(consumer.scope, user, backend='allauth.account.auth_backends.AuthenticationBackend')
# save the session
consumer.scope['session'].modified = True
await database_sync_to_async(consumer.scope['session'].save)()
每次,websocket 连接断开,用户不再登录。 我想,会话被保存了
consumer.scope['session'].save()
但它不起作用。会话不是持久的。
我该如何解决这个问题?
【问题讨论】:
标签: django django-allauth django-channels django-sessions django-login