[已解决]Workerman websocket 实现必须auth认证登录后才能聊天的问题

我遇到的问题

我想在项目中实现已认证用户间的聊天,具体是通过Gateway框架中的bindUid方法将客户端id绑定用户的账号,然后sendToUid实现。

但绑定前提是需要获取用户登录的账号,很显然我并不能直接在workerman中使用auth()方法。那我该使用方式使workerman知道用户的登录状态?

目前的解决方法

用户登录账号时分配一个key给用户,用户与其他用户聊天时,传key给workerman,workerman通过key验证后,绑定这个key对应的账号(bindUid),验证失败不传数据。

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 9

我是传token去认定,不通过直接断开

2年前 评论
游离不2 2年前
臭鼬 (作者) 2年前
臭鼬 (作者) 2年前

jwt认证能实现你的需求

2年前 评论

token传过去,然后自己中间件手动设置一下headers,然后手动check一下用户不就行了

2年前 评论

方便加个好友不,我也在做这方面可以交流一下

2年前 评论
GDDD

文档有 www.workerman.net/doc/gateway-work... mvc后端uid绑定代码片段

2年前 评论

我就是单纯的在onWebSocketConnect 里面验证token ,不通过就返401给前端

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!