GenerateTestUserSig.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import * as LibGenerateTestUserSig from './lib-generate-test-usersig.min.js'
  2. import { getSignatureInfo } from "../../src/api";
  3. // import store from '@/store';
  4. /**
  5. * 腾讯云 SDKAppId,需要替换为您自己账号下的 SDKAppId。
  6. *
  7. * 进入腾讯云实时音视频[控制台](https://console.cloud.tencent.com/rav ) 创建应用,即可看到 SDKAppId,
  8. * 它是腾讯云用于区分客户的唯一标识。
  9. */
  10. const SDKAPPID = 1400601414
  11. /**
  12. * 签名过期时间,建议不要设置的过短
  13. * <p>
  14. * 时间单位:秒
  15. * 默认时间:7 x 24 x 60 x 60 = 604800 = 7 天
  16. */
  17. const EXPIRETIME = 86400
  18. /**
  19. * 计算签名用的加密密钥,获取步骤如下:
  20. *
  21. * step1. 进入腾讯云实时音视频[控制台](https://console.cloud.tencent.com/rav ),如果还没有应用就创建一个,
  22. * step2. 单击“应用配置”进入基础配置页面,并进一步找到“帐号体系集成”部分。
  23. * step3. 点击“查看密钥”按钮,就可以看到计算 UserSig 使用的加密的密钥了,请将其拷贝并复制到如下的变量中
  24. *
  25. * 注意:该方案仅适用于调试Demo,正式上线前请将 UserSig 计算代码和密钥迁移到您的后台服务器上,以避免加密密钥泄露导致的流量盗用。
  26. * 文档:https://cloud.tencent.com/document/product/647/17275#Server
  27. */
  28. const SECRETKEY = '6d065252f0779d8a4a45020630b3507ac1c8f946669fc240b9818ed243e40547'
  29. /*
  30. * Module: GenerateTestUserSig
  31. *
  32. * Function: 用于生成测试用的 UserSig,UserSig 是腾讯云为其云服务设计的一种安全保护签名。
  33. * 其计算方法是对 SDKAppID、UserID 和 EXPIRETIME 进行加密,加密算法为 HMAC-SHA256。
  34. *
  35. * Attention: 请不要将如下代码发布到您的线上正式版本的 App 中,原因如下:
  36. *
  37. * 本文件中的代码虽然能够正确计算出 UserSig,但仅适合快速调通 SDK 的基本功能,不适合线上产品,
  38. * 这是因为客户端代码中的 SECRETKEY 很容易被反编译逆向破解,尤其是 Web 端的代码被破解的难度几乎为零。
  39. * 一旦您的密钥泄露,攻击者就可以计算出正确的 UserSig 来盗用您的腾讯云流量。
  40. *
  41. * 正确的做法是将 UserSig 的计算代码和加密密钥放在您的业务服务器上,然后由 App 按需向您的服务器获取实时算出的 UserSig。
  42. * 由于破解服务器的成本要高于破解客户端 App,所以服务器计算的方案能够更好地保护您的加密密钥。
  43. *
  44. * Reference:https://cloud.tencent.com/document/product/647/17275#Server
  45. */
  46. export function genTestUserSig(userID) {
  47. // console.log("LibGenerateTestUserSig",LibGenerateTestUserSig.default)
  48. // console.log("typeof LibGenerateTestUserSig",typeof LibGenerateTestUserSig.default)
  49. const generator = new LibGenerateTestUserSig.default(SDKAPPID, SECRETKEY, EXPIRETIME)
  50. const userSig = generator.genTestUserSig(userID)
  51. // return {
  52. // sdkAppID: SDKAPPID,
  53. // userSig: userSig,
  54. // }
  55. //接口获取签名
  56. let inviterId = sessionStorage.getItem('inviterId');
  57. if(!userID){userID=inviterId}
  58. console.log('inviterId',inviterId);
  59. let type = null;
  60. let from = sessionStorage.getItem('from');
  61. console.log('from',from);
  62. console.log('userID',userID);
  63. // console.log('userSig',userSig);
  64. if(from=='company'){
  65. type = 3
  66. }else if(from=='veterans'){
  67. type = 1
  68. }else if(from=='teacher'){
  69. type = 2
  70. }
  71. let inviterInfo={};
  72. getSignatureInfo({id:userID,type:type}).then(res=>{
  73. console.log('getSignatureInfo',res.data);
  74. inviterInfo = res.data.data;
  75. inviterInfo.sdkAppID = SDKAPPID;
  76. inviterInfo.userSig = res.data.data.signature;
  77. sessionStorage.setItem('inviterInfo', JSON.stringify(inviterInfo));
  78. console.log('inviterInfo',inviterInfo);
  79. // return inviterInfo;
  80. }).catch(err=>{
  81. console.log('getSignatureInfo',err);
  82. })
  83. // return inviterInfo
  84. return {
  85. sdkAppID: SDKAPPID,
  86. userSig: userSig,
  87. }
  88. }