Oejia 技术栈
首页
应用市场
方案
OE学院
分享
关于
编辑器
登录
如何在 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
2019-09-30 :
微信模块 Oejia_wx v0.5.9 发布,系列视图及对接优化,增加Odoo13支持
2021-08-31 :
微信模块 Oejia_wx v0.6.5 发布,更灵活强大的自定义回复功能实现各类自助交互查询业务
2023-04-29 :
Odoo商城模块 Oejia_weshop v1.1 发布,支持Odoo16及下单子账号特性
2020-09-30 :
Odoo 小程序商城模块 Oejia_weshop v0.2.2 发布,全面支持多公司销售机制
2015-1-7 :
RQ异步任务队列介绍
2016-05-11 :
在普通 Python 项目中使用 Django ORM 的方法
2017-11-02 :
Odoo 常用的一些内置对象
2018-04-28 :
呼叫平台接口文档
2016-03-07 :
Nginx 相关积累
2016-01-17 :
EXTJS布局示例(panel,Viewport,TabPanel)
官方订阅号
关注订阅实时了解我们更多分享
分类
(20)
Django (3)
DjangoX (13)
JS (2)
Nginx (1)
Odoo (134)
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
客服系统
审批OA
HTML5
OE商城
Markdown
DjangoX
解析
oeshop
PyQT
服系统
YouPBX
Excel
示例
md
markdown
Python
最近发布
OSError [Errno 5] Input/output error 异常处理
Odoo context 的常见使用示例
Odoo 符合国人菜单导航习惯的后台主题,支持最新的Odoo17、16等版本,支持企业版!
Odoo 官方应用市场开启 Odoo17 应用的发布!增加了行业应用专栏
Odoo商城模块 Oejia_weshop v1.2 发布,多商户、分销增强,增加商家端!
处理 Error Failed to download metadata for repo ‘appstream‘ Cannot prepare internal mirrorlist
Odoo 16 关键变化 change the term "acquirer" to "provider"
企业微信错误码 81013 的排查与处理
微信模块 Oejia_wx v0.6.7 发布,支持 Odoo16 及新的Websocket消息模式
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子