登录用户的机制

1、了解登录机制
2、加密用户数据生成会话


文章目录

  • 登录用户的机制
  • 前言
  • 一、UserSign的意义
  • 二、生成UserSign
    • 1.引入库
    • 2.图示
    • 3.实例化模型
  • 总结

前言

腾讯是国内最早也是最大的即时通信开发商,QQ 和微信已经成为每个互联网用户必不可少的应用。顺应行业数字化转型的趋势,腾讯将高并发、高可靠的即时通信能力进行开放,您可以轻易地根据腾讯提供的 SDK 将即时通信功能集成到 App 中,来满足您业务的各种需求。
针对开发者的不同阶段需求及不同场景,即时通信 IM 团队提供了一系列解决方案,包括:Android、iOS、Windows、Web 的 SDK 组件、服务端集成 REST API 接口、第三方回调接口 等。利用这些组件和能力,开发者可以简单快捷地构建高可靠且稳定的即时通信产品,随心所想,触达全球。

官方开发文档:点击前往
官方示例DEMO:Gitee


一、UserSign的意义

用户登录后 携带的UserSign为实例化模型操作信息的关键信息,可当做我们熟悉的HTTP/HTTPS请求的token信息,如果失效或者不存在,tim实例化接口则会判定无效请求,提示当前用户未登录、暂无法处理接口。

二、生成UserSign

1.引入库

代码如下(示例):

// IM Web SDK
npm install tim-js-sdk --save
// 发送图片、文件等消息需要的上传插件
npm install tim-upload-plugin --save

2.图示

3.实例化模型

//APP.VUE
onLaunch(){let that = this;let options = { SDKAppID:that.globalData.SDKAPPID };let tim = TIM.create(options); //初始化,生成tim实例console.log(tim,'实例化')tim.setLogLevel(1); //日志级别tim.registerPlugin({ 'tim-upload-plugin': TIMUploadPlugin });//监听 tim not readylet onSdkNotReady = function (event) {console.log('tim not ready:', event);that.globalData.tim_ready = false;};tim.on(TIM.EVENT.SDK_NOT_READY, onSdkNotReady);console.log(this.globalData.tim_ready);that.$tim = tim;
}

页面登录 文章所需JS文件在此处
GenerateTestUserSig /// 加密方法 配置SDKappid & 秘钥
lib-generate-test-usersig-es.min.js /// 加密文件


具体文件可以向这个GITEE的开源地址寻找

https://gitee.com/zhou_fan/tencent-im-demo?_from=gitee_search
图例

import { genTestUserSig } from "../../utils/GenerateTestUserSig.js";
// const TIM = require('../../utils/tim-wx.js');
import TIM from 'tim-js-sdk';
let onSdkReady; //监听tim ready
//登录
login: function (e) {let that = this;let userID = e;// 请求接口获取用户会话的UserSignlet data = genTestUserSig(userID); //生成userSiglet promise = app.$tim.login({ userID: userID, userSig: data.userSig });promise.then(function (imResponse) { //登录成功console.log('登录成功:', imResponse.data);that.login_user = userID;app.globalData.login_user = userID;app.globalData.tim_login_info = imResponse.data;//监听 tim readyonSdkReady = function (event) {console.log('tim ready:', event);app.globalData.tim_ready = true; //记录 tim readyuni.switchTab({url:"./index"})};app.$tim.on(TIM.EVENT.SDK_READY, onSdkReady);if (imResponse.data.repeatLogin === true) { //标识账号已登录,本次登录操作为重复登录。v2.5.1 起支持console.log('重复登录:', imResponse.data.errorInfo);}}).catch(function (imError) { //登录失败的相关信息console.warn('login error:', imError);});
},

业务执行中需要保持用户的会话,ws链接正常


总结

1、收集参数 sdkappid 秘钥
2、加密参数 生成usersign
3、校验会话 token有效
4、执行登录 login https://web.sdk.qcloud.com/im/doc/zh-cn/SDK.html#login

uniapp app 腾讯云 IM 通讯 封装基础登录方法相关推荐

  1. 腾讯云服务器Linux镜像系统登录方法(SSH、标准登录方式和VNC登录)

    腾讯云Linux服务器如何登录?可以使用SSH客户端登录,也可以使用腾讯云官方提供的标准登录方式和VNC登录,腾讯云服务器网来详细说下腾讯云服务器Linux操作系统登录连接方法: 腾讯云Linux服务 ...

  2. 腾讯云 即时通讯IM 接口

    <?php namespace app\miniapi\controller; use app\miniapi\service\TenImService; use think\Request; ...

  3. uniapp对接腾讯云IM+音视频。音视频含UI集成

    uniapp对接腾讯云IM+音视频 文章目录 uniapp对接腾讯云IM+音视频 前言 一.准备工作 二.使用步骤 1.App.vue配置 2.登录时操作 login.vue 3.使用方法 一.音视频 ...

  4. uniapp结合腾讯云及时通信IM的聊天记录本地存储方案

    uniapp结合腾讯云及时通信IM的聊天记录本地存储方案 UniApp 是一个跨平台的应用开发框架,可以使用 Vue.js 开发多端应用(如H5.小程序.App等).在 UniApp 中,可以使用 u ...

  5. 前端运用腾讯云即时通讯IM进行会话聊天

    本文仅给新接触即时通讯的新手们,并且看文档没有方向的朋友们提供一个清晰的思路,大佬们轻喷. 不管你是想在html.vue项目.微信小程序中哪里想运用腾讯云即时通讯IM,都可以很好的实现,现在给大家介绍 ...

  6. Unirech腾讯云代充-通过VNC 登录腾讯云国际版Windows云服务器实例教程

    Unirech腾讯云代充-通过VNC 登录腾讯云国际版Windows云服务器实例教程 当我们找分销商提供好腾讯云国际版代充值后,就可以正常的使用云服务器实例了.VNC登录是腾讯云国际版为用户提供的一种 ...

  7. 腾讯云配置jupyter notebook远程登录

    腾讯云配置jupyter notebook远程登录 我的环境 操作步骤 其他 我的环境 腾讯云云服务器 操作系统Ubuntu Server 20.04 LTS 64位 配置时间在21年10月 操作步骤 ...

  8. 腾讯云windows 2008 服务器无法登录,可能是你需要的答案

    一.问题描述 问题描述:腾讯云windows2008服务器 无法在本地登录. 问题详细描述:windows2008远程服务器,一直以来都可登录,突然一下就不可以登录了.而且在这之前没有对服务器进行任何 ...

  9. 服务器怎么买,腾讯云服务器新手购买的流程方法步骤

    服务器怎么买,腾讯云服务器新手购买的流程方法步骤.腾讯是国内互联网龙头企业,信得过,它们的产品是值得信任的.现在教下新手怎样选择和购买腾讯云服务器.包含普通购买流程,通过价格计算器购买,以及在腾讯云最 ...

  10. 腾讯云实现短信验证码登录

    腾讯云实现短信验证码登录 腾讯云配置 后端逻辑实现 腾讯云配置 首先在腾讯云搜索短信 然后按要求创建短信签名,短信模板.短信模板很容易审核,但是签名比较复杂,需要按要求填写和上传相关信息.如果驳回可以 ...

最新文章

  1. 《40期》 我们要把世纪末日变成重生日
  2. qdialog 返回值_python-PyQt QDialog返回响应是或否
  3. python legend位置_关于matplotlib-legend 位置属性 loc 使用说明
  4. Pytorch RNN(详解RNN+torch.nn.RNN()实现)
  5. aes加密算法python语言实现_python-AES加密解密
  6. android空格对齐
  7. 国内首例!云服务器侵权案件:阿里云胜诉,不承担法律责任
  8. sdp ddp内存怎么分_小鑫课堂 | 多余的内存不要浪费,拿来做硬盘吧
  9. a form 出口享惠情况_进出口报关
  10. 搭建私有云盘 cloudreve
  11. 1.Cookie和Session
  12. 如何给PDF文件加密?PDF文件加密操作步骤来了
  13. 基于深度卷积神经网络的人脸识别考勤系统-VGG-PYTHON-QT(1)
  14. XML External Entities 攻击(XML外部实体注入)
  15. IRQF_ONESHOT
  16. 【转】国内外优秀的计算机视觉团队汇总
  17. 记录篇(2)---- uniapp在项目中的实际问题
  18. python高级绘图师_matplotlib库-python中的绘图师
  19. Qt5安装Qxlsx模块,以及Qxlsx模块的简单使用,Qt操作Excel,附资源例程下载
  20. 阿里云IoT芯片模组合作之美

热门文章

  1. md设备linux,【linux基础】14、raid和md模块
  2. 嵌入式Linux系统uart串口编程详解及实例分析
  3. 局域网打印机共享怎么设置_一篇文章弄懂局域网打印机共享
  4. 怎样清理计算机c盘东西,电脑c盘满了怎么清理
  5. 计算机技能大赛获奖发言,技能大赛获奖感言
  6. 山海经鸿蒙boss疲劳,《山海经》十大奇兽:吃了可缓解各种疑难杂症
  7. 软件智能:aaas系统中AI众生的“世”和“界” 之11 认知水平的假想supposition
  8. 电动汽车电池换电站选址与定容(Matlab代码实现)
  9. 今夜,只我一人听雨声
  10. 【转载】win10右下角图标模糊如何解决_win10系统右下角图标突然变模糊怎么办-win7之家