oalogin.html 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta
  6. name="viewport"
  7. content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
  8. />
  9. </head>
  10. <body>
  11. <div id="app1" class="container">
  12. <div style="margin-top: 30px">
  13. <h1>登录中</h1>
  14. <p>{{ message }}</p>
  15. </div>
  16. </div>
  17. <script
  18. type="text/javascript"
  19. src="/static/jquery/dist/jquery.min.js"
  20. ></script>
  21. <script
  22. type="text/javascript"
  23. src="/static/vue/dist/vue.global.prod.js"
  24. ></script>
  25. <script>
  26. Vue.createApp({
  27. data: function () {
  28. return {
  29. userId: undefined, //用户ID
  30. clientId: undefined, //公司ID
  31. userName: undefined, //用户姓名
  32. checkCode: undefined, // 校验码
  33. loginDateMs: undefined, //当前登录时间
  34. message: "正在检查您的权限,请稍等...",
  35. urlRoot: "",
  36. };
  37. },
  38. mounted: function () {
  39. this.urlRoot = this.getRootPath() + "/";
  40. this.getParams();
  41. },
  42. methods: {
  43. // 获取参数后登录
  44. getParams: function () {
  45. var _self = this;
  46. const url = window.location.href
  47. const params = _self.getQueryString(url)
  48. _self.userId = params.userId;
  49. _self.userName = params.userName;
  50. _self.clientId = params.clientId;
  51. _self.checkCode = params.checkCode;
  52. _self.loginDateMs = params.loginDateMs;
  53. this.azureSamlLogin();
  54. },
  55. // 单点登录
  56. azureSamlLogin: function () {
  57. let _self = this;
  58. var loginData = {
  59. userId: _self.userId,
  60. userName: _self.userName,
  61. clientId: _self.clientId,
  62. checkCode: _self.checkCode,
  63. loginDateMs: _self.loginDateMs,
  64. };
  65. $.ajax({
  66. url: "authApi/LoginResource/loginPoint",
  67. type: "post",
  68. data: loginData,
  69. success: function (loginInfo) {
  70. if (loginInfo.errorCode == 0) {
  71. _self.setTokenClient();
  72. _self.setLoginInfo(loginInfo.data);
  73. } else {
  74. _self.message = loginInfo.errorMessage;
  75. }
  76. },
  77. error: function (XMLHttpRequest, textStatus, errorThrown) {},
  78. });
  79. },
  80. // 设置LoginInfo
  81. setLoginInfo: function (loginInfo) {
  82. var _self = this;
  83. _self.clearLocalStorage();
  84. localStorage.setItem("#token", loginInfo.token);
  85. localStorage.setItem("#accountId", loginInfo.accountId);
  86. localStorage.setItem("#LoginInfo", JSON.stringify(loginInfo));
  87. window.location.href = _self.urlRoot + "#/desktop/dashboard";
  88. },
  89. // 获取参数函数
  90. getQueryString: function (url) {
  91. let urlStr = url.split("?")[1];
  92. const urlSearchParams = new URLSearchParams(urlStr);
  93. const result = Object.fromEntries(urlSearchParams.entries());
  94. return result;
  95. },
  96. // 获取主机地址
  97. getRootPath: function () {
  98. var protocol = window.location.protocol;
  99. var host = window.location.host;
  100. var localhostPath = protocol + "//" + host;
  101. return localhostPath;
  102. },
  103. // 设置TokenClient
  104. setTokenClient: function () {
  105. var _self = this;
  106. $.ajax({
  107. url: "TokenClientResource/saveTokenClient",
  108. type: "post",
  109. contentType: "application/json",
  110. beforeSend: function (request) {
  111. var token = localStorage.getItem("#token");
  112. var account = localStorage.getItem("#accountId");
  113. request.setRequestHeader("account", account);
  114. request.setRequestHeader("token", token);
  115. },
  116. success: function (data) {},
  117. error: function (XMLHttpRequest, textStatus, errorThrown) {},
  118. });
  119. },
  120. // 清理localStorage
  121. clearLocalStorage: function () {
  122. // 需要保留的参数列表
  123. var reserveParams = [
  124. "hostPageBaseURL",
  125. "workShopId",
  126. "resourceInstanceId",
  127. "resourceInstanceName",
  128. "apsBaseUrl",
  129. "cameraBaseURL",
  130. ];
  131. //存放的信息
  132. var reserveParamValues = [];
  133. //获取参数信息
  134. var len = reserveParams.length;
  135. for (let i = 0; i < len; i++) {
  136. var reserveParam = reserveParams[i];
  137. var reserveParamValue = "";
  138. if (localStorage.getItem(reserveParam) != undefined) {
  139. reserveParamValue = localStorage.getItem(reserveParam);
  140. }
  141. reserveParamValues.push(reserveParamValue);
  142. }
  143. //清理localStorage
  144. window.localStorage.clear();
  145. //还原参数信息
  146. for (let i = 0; i < len; i++) {
  147. localStorage.setItem(reserveParams[i], reserveParamValues[i]);
  148. }
  149. },
  150. },
  151. }).mount("#app1");
  152. </script>
  153. </body>
  154. </html>