ssoLogin.html 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  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. token: "",
  30. urlRoot: "",
  31. languageId: "zh-CN",
  32. message: "正在检查您的权限,请稍等...",
  33. };
  34. },
  35. mounted: function () {
  36. this.urlRoot = this.getRootPath() + "/";
  37. this.getParams();
  38. },
  39. methods: {
  40. // 获取参数后登录
  41. getParams: function () {
  42. var _self = this;
  43. const url = window.location.href;
  44. const params = _self.getQueryString();
  45. _self.token = params.token;
  46. this.azureSamlLogin();
  47. },
  48. // 单点登录
  49. azureSamlLogin: function () {
  50. const _self = this;
  51. const params = {
  52. token:_self.token,
  53. languageId:_self.languageId,
  54. }
  55. $.ajax({
  56. url: _self.urlRoot + `api/SsoResource/login`,
  57. type: "post",
  58. data:params,
  59. success: function (loginInfo) {
  60. if (loginInfo.errorCode == 0) {
  61. _self.setLoginInfo(loginInfo.data);
  62. } else {
  63. _self.message = loginInfo.errorMessage;
  64. }
  65. },
  66. error: function (XMLHttpRequest, textStatus, errorThrown) {},
  67. });
  68. },
  69. // 设置LoginInfo
  70. setLoginInfo: function (loginInfo) {
  71. var _self = this;
  72. _self.clearLocalStorage();
  73. localStorage.setItem("#token", loginInfo.token);
  74. localStorage.setItem("#accountId", loginInfo.accountId);
  75. localStorage.setItem("#languageSelected", _self.languageId);
  76. localStorage.setItem("#LoginInfo", JSON.stringify(loginInfo));
  77. if (_self.isMobile() === false) {
  78. localStorage.setItem('allowSound', false);
  79. window.location.href = _self.urlRoot + "#/desktop/dashboard";
  80. } else {
  81. window.location.href = _self.urlRoot + "app.html#/desktop/appMenu";
  82. }
  83. //window.location.href = _self.urlRoot + "#/desktop/dashboard";
  84. },
  85. /**
  86. * 判断当前的环境是手机端还是电脑端
  87. */
  88. isMobile: function () {
  89. if (window.navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)) {
  90. return true; // 移动端
  91. } else {
  92. return false; // PC端
  93. }
  94. },
  95. // 获取参数函数
  96. getQueryString: function () {
  97. const url = window.location.href;
  98. const urlStr = url.split("?")[1];
  99. const urlSearchParams = new URLSearchParams(urlStr);
  100. const result = Object.fromEntries(urlSearchParams.entries());
  101. return result;
  102. },
  103. // 获取主机地址
  104. getRootPath: function () {
  105. var protocol = window.location.protocol;
  106. var host = window.location.host;
  107. var localhostPath = protocol + "//" + host;
  108. return localhostPath;
  109. },
  110. // 清理localStorage
  111. clearLocalStorage: function () {
  112. // 需要保留的参数列表
  113. var reserveParams = [
  114. "hostPageBaseURL",
  115. "workShopId",
  116. "resourceInstanceId",
  117. "resourceInstanceName",
  118. "apsBaseUrl",
  119. "cameraBaseURL",
  120. ];
  121. //存放的信息
  122. var reserveParamValues = [];
  123. //获取参数信息
  124. var len = reserveParams.length;
  125. for (let i = 0; i < len; i++) {
  126. var reserveParam = reserveParams[i];
  127. var reserveParamValue = "";
  128. if (localStorage.getItem(reserveParam) != undefined) {
  129. reserveParamValue = localStorage.getItem(reserveParam);
  130. }
  131. reserveParamValues.push(reserveParamValue);
  132. }
  133. //清理localStorage
  134. window.localStorage.clear();
  135. //还原参数信息
  136. for (let i = 0; i < len; i++) {
  137. localStorage.setItem(reserveParams[i], reserveParamValues[i]);
  138. }
  139. },
  140. },
  141. }).mount("#app1");
  142. </script>
  143. </body>
  144. </html>