tinode登录流程

登录

交互消息,out是客户端发出,in是客户端接收
  1. 客户端发出hi消息,里面主要包括了版本,ua,lang消息
    out: {"hi":{"id":"83985","ver":"0.16.3","ua":"TinodeWeb/0.16.3 (Chrome/80.0; Win32); tinodejs/0.16.3","lang":"zh-CN"}} 
    
  2. 服务端返回ctrl消息;其实就是返回了服务端的一堆配置,返回的代码是201
     in: {"ctrl":{"id":"83985","params":{"build":"mongodb:undef","maxFileUploadSize":8388608,"maxMessageSize":262144,"maxSubscriberCount":128,"maxTagCount":16,"ver":"0.16"},"code":201,"text":"created","ts":"2020-03-23T07:55:58.439Z"}} 
    
  3. 客服端登录,发送login消息
     out: {"login":{"id":"83986","scheme":"basic","secret":"bWExMjM0Ok1hQDEyMzQ="}}
    
    • 这个secret没有任何加密之类的保护措施,就是 用户名:密码,后端直接用string(secret)就看到了
    • 登录的时候, 使用的是schema是basic
  4. 服务端返回ctrl消息,主要内容:authlvl,token和expires
    in:{"ctrl":{"id":"83986","params":{"authlvl":"auth","expires":"2020-04-06T07:55:58.504Z","token":"Q31lre9hlo6O4IpeFAABAAEAUo6b0ItShDLjnW15vXYZzvVjg2zE++bUZ6swdvVbcro=","user":"usrQ31lre9hlo4"},"code":200,"text":"ok","ts":"2020-03-23T07:55:58.441Z"}} 
    
    • expires是在配置文件的token.expire_in里指定的
    • token是没有存储在数据库或者redis之类的,比较像jwt
    • 配置文件的token.key承担了盐的功能,所有的用户用都是这一个
  5. 客户端发送sub消息,订阅me这个topic
    out: {"sub":{"id":"83987","topic":"me","get":{"what":"sub desc tags cred"}}} 
    
    • "get":{"what":"sub desc tags cred"} 获取了4个,服务端返回了响应的meta消息;"sub desc tags cred"是msg.Sub.Get.What
      in: {"meta":{"id":"83987","topic":"me","ts":"2020-03-23T07:55:58.513Z","desc":{"updated":"2020-02-17T03:23:38.392Z","touched":"2020-02-17T03:23:38.392Z","defacs":{"auth":"JRWPAS","anon":"N"},"public":{"fn":"马兵"}}}} 
      in: {"meta":{"id":"83987","topic":"me","ts":"2020-03-23T07:55:58.513Z","sub":[{"updated":"2020-02-17T03:24:32.548Z","acs":{"mode":"JRWPA","given":"JRWPAS","want":"JRWPA"},"read":11,"recv":11,"public":{"fn":"Alice Johnson","photo":{"data":"<8908, bytes: /9j/4AAQSkZJ...sUaqGs//2Q==>","type":"jpg"}},"topic":"usrE7cMWMo0oAU","touched":"2020-03-23T03:38:50.685Z","seq":11},{"updated":"2020-03-05T07:40:23.407Z","acs":{"mode":"JRWPA","given":"JRWPAS","want":"JRWPA"},"public":{"fn":"Bob Smith","photo":{"data":"<7236, bytes: /9j/4AAQSkZJ...30e375//2Q==>","type":"jpg"}},"topic":"usrurYOjmqq3fo","touched":"2020-03-05T07:40:23.407Z"}]}} 
      in: {"meta":{"id":"83987","topic":"me","ts":"2020-03-23T07:55:58.516Z","tags":["basic:ma1234","email:cumt_ttr@163.com"]}} 
      in: {"meta":{"id":"83987","topic":"me","ts":"2020-03-23T07:55:58.516Z","cred":[{"meth":"email","val":"cumt_ttr@163.com","done":true},{"meth":"email","val":"rangerforce007@gmail.com"}]}} 
      
    • 返回的pres消息是每个sub消息都会有的对应消息,在0.16.4版本的login后的sub没再返回pres消息包,而是ctrl消息包
       in: {"pres":{"topic":"me","src":"usrE7cMWMo0oAU","what":"on"}}
      
       in: {"ctrl":{"id":"108599","topic":"me","params":null,"code":200,"text":"ok","ts":"2020-03-27T03:47:21.591Z"}}
      
    • sub消息的topicme的时候,返回的消息的topic也为me
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值