如何在 Django 中使用 Tornado 的 WebSocket 并做请求的用户验证识别 - Oejia 技术栈,企业方案分享、Odoo顾问
Oejia 技术栈
主页
分享
微信模块
索引
关于
订阅
编辑器
登录
如何在 Django 中使用 Tornado 的 WebSocket 并做请求的用户验证识别
admin
on 2016-09-21 13:27:09
案例入口启动代码如下 ``` 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/blog/2016/09/21/django_tornado_websocket.html
http://www.oejia.net/raw/2016/09/21/django_tornado_websocket.md
admin
on 2016-09-21 13:27:09
Tag
Related
2021-01-17 :
如何实现 Odoo 数据每天备份到本地存储
2019-11-14 :
Odoo 国内发票 OCR 导入功能介绍
2018-05-04 :
微信模块 Oejia_wx v0.5.1 发布,优化聊天会话缓存及多db模式的支持
2017-08-10 :
DjangoX App 配置和菜单组设置介绍
2016-12-29 :
Odoo 开发中 wizard 向导页的使用方法
2016-12-16 :
Oejia_wx v0.4.0 发布,支持 Odoo10 的微信模块
2016-01-19 :
在 Odoo 中嵌入iframe页的方法
2016-01-19 :
Odoo 数据的增/删/改/查(CRUD)操作 API 解析及示例
2014-12-16 :
Cordova页面加载的事件
2014-12-02 :
系统修复和更新记录
官方公众号
关注公众号实时咨询我们
分类
Odoo (81)
DjangoX (11)
后端HTTP (7)
YouMd (4)
移动开发 (4)
Django (4)
公告说明 (2)
JS (2)
Python (1)
前端 (1)
Nginx (1)
桌面UI (1)
January 2021
Sun
Mon
Tue
Wed
Thu
Fri
Sat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
About This Entry
Odoo 微信模块的企业号(企业微信)使用说明
DjangoX 站点级配置介绍
About This Blog
main index
to find recently
archives
to find all
标签
微信模块
小程序商城
Python
Web
Http
Cordova
客服系统
微信客服系统
HTML5
微信客服
Markdown
解析
DjangoX
微信模块发布记录
客服工单系统
ExtJS
示例
Excel
JS
服系统
新年
PyQT
YouPBX
扩展开发
最近发布
Odoo 如何用命令行备份还原数据
如何实现 Odoo 数据每天备份到本地存储
微信模块 Oejia_wx v0.6.3 发布,多项兼容优化,即将全面适配 Odoo14
Odoo 小程序商城模块 Oejia_weshop v0.2.2 发布,全面支持多公司销售机制
OE商城积分模块
Odoo14 相对 Odoo13 依赖库的变化
Oejia 七月模块产品动态之OE商城
小程序商城模块 Oejia_weshop v0.2.1 发布,各种营销活动支持打通线上线下业务
基于企业微信官方审批应用实现的Odoo通用审批功能
OE小程序商城订阅消息通知使用说明
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子