2
0

index.html 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <!--
  2. ~Copyright [2022] [MaxKey of copyright http://www.maxkey.top]
  3. ~
  4. ~Licensed under the Apache License, Version 2.0 (the "License");
  5. ~you may not use this file except in compliance with the License.
  6. ~You may obtain a copy of the License at
  7. ~
  8. ~ http://www.apache.org/licenses/LICENSE-2.0
  9. ~
  10. ~Unless required by applicable law or agreed to in writing, software
  11. ~distributed under the License is distributed on an "AS IS" BASIS,
  12. ~WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. ~See the License for the specific language governing permissions and
  14. ~limitations under the License.
  15. -->
  16. <!doctype html>
  17. <html>
  18. <head>
  19. <meta charset="utf-8">
  20. <title>MaxKey单点登录认证系统</title>
  21. <base href="/">
  22. <meta name="viewport" content="width=device-width, initial-scale=1">
  23. <meta http-equiv="x-ua-compatible" content="ie=edge">
  24. <title id="maxkey_title" name="description">MaxKey-业界领先的IAM身份管理和认证产品</title>
  25. <meta http-equiv="description" content="MaxKey Single Sign-On">
  26. <link rel="icon" type="image/x-icon" href="favicon.ico">
  27. <script src="./assets/transform.js"></script>
  28. <script src="./assets/qrcode/qrcode.min.js"></script>
  29. <!-- Apple Touch Icon -->
  30. <!-- <link rel="apple-touch-icon" href="custom-icon.png"> -->
  31. <style type="text/css">
  32. .preloader {
  33. position: fixed;
  34. top: 0;
  35. left: 0;
  36. z-index: 9999;
  37. width: 100%;
  38. height: 100%;
  39. overflow: hidden;
  40. background: #49a9ee;
  41. transition: opacity .65s
  42. }
  43. .preloader-hidden-add {
  44. display: block;
  45. opacity: 1
  46. }
  47. .preloader-hidden-add-active {
  48. opacity: 0
  49. }
  50. .preloader-hidden {
  51. display: none
  52. }
  53. .cs-loader {
  54. position: absolute;
  55. top: 0;
  56. left: 0;
  57. width: 100%;
  58. height: 100%
  59. }
  60. .cs-loader-inner {
  61. position: absolute;
  62. top: 50%;
  63. width: 100%;
  64. color: #fff;
  65. text-align: center;
  66. transform: translateY(-50%)
  67. }
  68. .cs-loader-inner label {
  69. display: inline-block;
  70. font-size: 20px;
  71. opacity: 0
  72. }
  73. @keyframes lol {
  74. 0% {
  75. transform: translateX(-300px);
  76. opacity: 0
  77. }
  78. 33% {
  79. transform: translateX(0);
  80. opacity: 1
  81. }
  82. 66% {
  83. transform: translateX(0);
  84. opacity: 1
  85. }
  86. 100% {
  87. transform: translateX(300px);
  88. opacity: 0
  89. }
  90. }
  91. .cs-loader-inner label:nth-child(6) {
  92. animation: lol 3s infinite ease-in-out
  93. }
  94. .cs-loader-inner label:nth-child(5) {
  95. animation: lol 3s .1s infinite ease-in-out
  96. }
  97. .cs-loader-inner label:nth-child(4) {
  98. animation: lol 3s .2s infinite ease-in-out
  99. }
  100. .cs-loader-inner label:nth-child(3) {
  101. animation: lol 3s .3s infinite ease-in-out
  102. }
  103. .cs-loader-inner label:nth-child(2) {
  104. animation: lol 3s .4s infinite ease-in-out
  105. }
  106. .cs-loader-inner label:nth-child(1) {
  107. animation: lol 3s .5s infinite ease-in-out
  108. }
  109. </style>
  110. </head>
  111. <body>
  112. <app-root></app-root>
  113. <div class="preloader">
  114. <div class="cs-loader">
  115. <div class="cs-loader-inner">
  116. <label> ●</label>
  117. <label> ●</label>
  118. <label> ●</label>
  119. <label> ●</label>
  120. <label> ●</label>
  121. <label> ●</label>
  122. </div>
  123. </div>
  124. </div>
  125. </body>
  126. <!--attention http or https-->
  127. <!--企业微信-->
  128. <script src="http://wwcdn.weixin.qq.com/node/wework/wwopen/js/wwLogin-1.2.7.js"></script>
  129. <!--钉钉-->
  130. <!---->
  131. <script src="http://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"></script>
  132. <script>
  133. var ddredirect_uri = "";
  134. var handleMessage = function (event) {
  135. var origin = event.origin;
  136. if (origin == "https://login.dingtalk.com") { //判断是否来自ddLogin扫码事件。
  137. var loginTmpCode = event.data;
  138. ddredirect_uri = ddredirect_uri + '&loginTmpCode=' + loginTmpCode;
  139. //获取到loginTmpCode后就可以在这里构造跳转链接进行跳转了
  140. window.top.location.href = ddredirect_uri;
  141. }
  142. };
  143. if (typeof window.addEventListener != 'undefined') {
  144. window.addEventListener('message', handleMessage, false);
  145. } else if (typeof window.attachEvent != 'undefined') {
  146. window.attachEvent('onmessage', handleMessage);
  147. }
  148. </script>
  149. <!--飞书-->
  150. <!--
  151. <script src="http://sf3-cn.feishucdn.com/obj/static/lark/passport/qrcode/LarkSSOSDKWebQRCode-1.0.1.js"></script>
  152. <script type="text/javascript">
  153. var fsredirectUri = "";
  154. var QRLoginObj;
  155. var handleMessage = function (event) {
  156. var origin = event.origin;
  157. // 使用 matchOrigin 方法来判断 message 是否来自飞书页面
  158. if (QRLoginObj && QRLoginObj.matchOrigin(origin)) {
  159. var loginTmpCode = event.data;
  160. // 在授权页面地址上拼接上参数 tmp_code,并跳转
  161. fsredirectUri = fsredirectUri + "&tmp_code=" + loginTmpCode;
  162. window.top.location.href = fsredirectUri;
  163. }
  164. };
  165. if (typeof window.addEventListener != 'undefined') {
  166. window.addEventListener('message', handleMessage, false);
  167. }
  168. else if (typeof window.attachEvent != 'undefined') {
  169. window.attachEvent('onmessage', handleMessage);
  170. }
  171. </script>
  172. -->
  173. </html>