《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
进入页面后不直接ws,使用ajax验证下用户,没问题的话再ws
@修电脑的 这样没有什么用吧,应该在服务端把好关,才对
我认为你的验证流程是没有问题的,因为客户端代码总是暴露的,所以应该使用一种临时获取的、具有有效期的、传输过程是安全的东西来作为验证依据,而用你的token正好符合,如果你希望做的完美,可以增加一些合法来源检测,例如:验证来源域名是否xxx.com
我第一次坐这东西,心里没底,不知道这样做有没有风险,所以想看看大家是怎么想的
一般都是 ws 连上后客户端发 hello 消息然后带上鉴权信息, 服务端收到开始鉴权
如果用户登录使用 http 那么,只需要在链接的时候把 token 发过来。最好使用现成的协议,前后端都会省事。
ws的授权方式有很多,首先,你得了解ws协议的具体内容。这里说两种:
第一种方式,URL参数,ws的连接URL中可以携带如:?token=xxx这样的方式,然后在ws的服务器获取这个token来验证是否建立这个连接
第二种方式,cookie,ws的连接是可以携带客户端的cookie的。
服务端监听
open
事件,要求客户端将token
带过来,服务端校验成功允许连接,否则就close
你的方法没问题的
wiki.swoole.com/#/websocket_server...
两种方式吧,要么连接建立后做一次验证,后面都默认验证通过,要么就push消息每次都验证。个人认为前者更合理。
url 上记得可以带参数,我搞过这样的demo
我的是直接把参数从url上带过来
携带到url
你可以在我的项目上二开 用户创建 跟 验证已经弄完了
我有个项目目前用的 swoole 的 自定义 onHandShake,验证客服端 cookie携带的 参数 是否符合要求,否则直接拒绝链接,而不是在onOpen里面,onopen 是已经链接成功后了的操作。
token 蛮好的
就连的时候检查一下,连上了就不管了。
之前做过使用
EasySwoole
自定义握手事件将用户token
通过sec-websocket-protocol
子协议携带过来做验证,可以直接将没登录用户拦截在onOpen
之前,就不用主动断开连接许多项目我都是独立使用 workman 做 websocket 服务器,使用 GatewayWorker 能快速开发相关功能,集成到 laravel 或者 tp 等 php 常规框架一起使用,能完美解决 websocket 通讯问题,实现了聊天室、客服,包括小程序中的各种实时交互与应用相关的功能。可以看 demo(https://element.wmhello.cn)