请选择 进入手机版 | 继续访问电脑版

默认
发表评论 8
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求教关于IM聊天系统中长连接的鉴权设计思路

关于IM系统中长连接的鉴权设计


第一次开发IM系统。没有经验。关于IM长连接的Token鉴权。我有两种想法。但是不知道大家是怎么做的?想交流一下。

第一种方式
1,首先通过http请求,获取到tcp连接的Token。
2,与IM服务器建立Tcp长连接后,客户端立即发送Token信息,IM服务器绑定用户和Channel的关系。以后每次消息交互都不用鉴权
3,如果建立连接后,超过一定的时间(2s)没有发送Token信息,则服务端主动断开连接

第二种方式
1,首先通过http请求,获取到tcp连接的Token。
2,与IM服务器建立Tcp长连接后,每次通信都把Token信息带上。第一次通信的时候绑定用户和Channel的关系


大家的IM鉴权是怎么设计的啊?我上述的两种方式在IM系统中是不是有问题?

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:IM开发
上一篇:求教关于IM中服务端发送给客户端的离线消息可靠性问题下一篇:一文读懂即时通讯应用中的网络心跳包机制:作用、原理、实现思路等

本帖已收录至以下技术专辑

推荐方案
评论 8
你这个token起的作用是什么?你可以具体说说你对它的理解,然后再考虑怎么设计合理
引用:JackJiang 发表于 2019-08-07 10:51
你这个token起的作用是什么?你可以具体说说你对它的理解,然后再考虑怎么设计合理

跟服务器创建IM连接后,确定用户身份的凭证啊。
引用:KevinBlandy 发表于 2019-08-07 11:55
跟服务器创建IM连接后,确定用户身份的凭证啊。

理论上,应该用你的第一种方式合理一些,但你的第一种方案有瑕疵——第3)步貌似没有必要,因为第2)步连接的时候带过来这个token,合法服务端就允许连接进入正常管理逻辑,不合法就直接拒绝继续连接的其它操作,直接断开。
感觉楼主把http连接和im的socket长连接有点搞混了
楼主这个Token的生成规则和使用规则是怎么定义?
引用:弱鸡哥 发表于 2019-08-07 16:16
楼主这个Token的生成规则和使用规则是怎么定义?

没啥规则也。就是用户身份的一个标识。
引用:JackJiang 发表于 2019-08-07 16:15
理论上,应该用你的第一种方式合理一些,但你的第一种方案有瑕疵——第3)步貌似没有必要,因为第2)步连 ...

那群主设计的IM。是怎么去做用户身份鉴权的?
引用:KevinBlandy 发表于 2019-08-07 17:47
那群主设计的IM。是怎么去做用户身份鉴权的?

用户id、token组合使用啦,用户id可以知道这个会话来自哪个客户端,token来用检查连接发起的是否合法,就是这样的思路。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部