登錄用戶的機制
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 ready
let 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;
// 請求介面獲取用戶會話的UserSign
let data = genTestUserSig(userID); //生成userSig
let 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 ready
onSdkReady = function (event) {
console.log('tim ready:', event);
app.globalData.tim_ready = true; //記錄 tim ready
uni.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
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/351016.html
標籤:其他
