Oejia 技术栈
首页
分享
微信模块
关于
编辑器
登录
如何在 Django 中使用 Tornado 的 WebSocket 并做请求的用户验证识别
admin
on 2016-09-21
案例入口启动代码如下 ``` wsgi_app = tornado.wsgi.WSGIContainer(django_wsgi_app) tornado_app = tornado.web.Application( [ (ur'/ws_logging', SocketLogging), ('.*', tornado.web.FallbackHandler, dict(fallback=wsgi_app)), ], **tornado_settings) server = tornado.httpserver.HTTPServer(tornado_app) server.listen(port) tornado.ioloop.IOLoop.instance().start() ``` django_wsgi_app 的获取 ``` import os from django.core.wsgi import get_wsgi_application os.environ.setdefault("DJANGO_SETTINGS_MODULE", "apps.settings") django_wsgi_app = get_wsgi_application() ``` 客户端打开一个包含 websocket 的载体页面当然可以利用 Django 的 auth 模块做用户识别,但是客户端 websocket 请求到 tornado 的 websocket_hander 的交互过程怎么进行鉴权与用户识别是个问题,下面的方案可以解决! ``` class SocketLogging(websocket.WebSocketHandler): ... def get_current_user(self): self.session_key = self.get_cookie('sessionid') session = session_engine.SessionStore(self.session_key) r = DummyRequest() r.session = session self.user = auth.get_user(r) return self.user ``` 原来可以通过 sessionid 这个cookie 再调用 Django 相关函数就可以获取到当前用户,因为是同一个域,所有普通的http请求和websocket请求他们的cookie是共用的
Information
如何在 Django 中使用 Tornado 的 WebSocket 并做请求的用户验证识别
http://www.oejia.net/article/602b180de1ed748ffac5fd8d9d0063eb
http://www.oejia.net/raw/602b180de1ed748ffac5fd8d9d0063eb
admin
on 2016-09-21
Related
2021-08-29 :
Odoo 中时间相关的一些注意点
2018-02-08 :
Odoo 中的列表页如何默认就显示出筛选及分组功能菜单
2019-03-30 :
Odoo 扫码及授权免密登录通用模块使用说明
2016-01-17 :
新版开启2016年新篇章
2018-10-24 :
微信模块 Oejia_wx v0.5.4 发布,增加小程序客服聊天支持,支持 Odoo12
2016-05-11 :
在普通 Python 项目中使用 Django ORM 的方法
2022-05-15 :
远程登录提示“找不到匹配的keyexchange算法”
2020-05-18 :
基于企业微信官方审批应用实现的Odoo通用审批功能
2022-05-30 :
浏览器调用print实现部分打印的两种方法
2018-02-08 :
如何自定义扩展Odoo前端控件widget
分类
(23)
Django (3)
DjangoX (13)
JS (2)
Nginx (1)
Odoo (126)
Python (1)
YouMd (3)
公告说明 (2)
前端 (2)
后端HTTP (7)
异常处理 (1)
桌面UI (1)
移动开发 (4)
官方公众号
关注公众号实时咨询我们
About This Entry
DjangoX 站点级配置介绍
Odoo 模型定义详解
About This Blog
main index
to find recently
archives
to find all
标签
微信模块发布记录
微信模块
小程序商城
Web
Http
客服系统
HTML5
审批OA
OE商城
Markdown
DjangoX
oeshop
服系统
解析
Excel
YouPBX
markdown
PyQT
md
Python
示例
最近发布
处理 Error Failed to download metadata for repo ‘appstream‘ Cannot prepare internal mirrorlist
Odoo 16 关键变化 change the term "acquirer" to "provider"
企业微信错误码 81013 的排查与处理
Odoo商城模块 Oejia_weshop v1.1 发布,支持Odoo16及下单子账号特性
微信模块 Oejia_wx v0.6.7 发布,支持 Odoo16 及新的Websocket消息模式
Odoo16 开启客屏时如何实现在POS设备上自动打开到第二屏
Odoo生产环境需要注意或修改的一些关键配置项
Odoo 更灵活的对账、付款及客户余额的介绍
Odoo16 SyntaxError
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子