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

我遇到的问题

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

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

目前的解决方法

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

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 9

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

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

jwt认证能实现你的需求

1年前 评论

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

1年前 评论

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

1年前 评论
GDDD

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

1年前 评论

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

1年前 评论

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