auto-login.html 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <!DOCTYPE html>
  2. <meta charset="UTF-8">
  3. <html>
  4. <head>
  5. <title>景宁教育魔方</title>
  6. <!-- 这个必须引入的啊,钉钉的前端js SDK, 使用框架的请自行参照开发文档 -->
  7. <script src="https://g.alicdn.com/dingding/dingtalk-jsapi/2.7.13/dingtalk.open.js"></script>
  8. <!-- 这个jquery 想不想引入自己决定,没什么影响 -->
  9. <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
  10. <style type="text/css">
  11. .loading {
  12. position: fixed;
  13. left: 0;
  14. top: 0;
  15. width: 100%;
  16. height: 100%;
  17. z-index: 100;
  18. background: url("loading.gif") center no-repeat rgba(255, 255, 255, .55);
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <!--TODO...替换成之前亲亲云的一个登录中转过度loading-->
  24. <div class="loading"></div>
  25. <!--<div id="user_info" style="color: #000;font-size: 15px;position: fixed;left: 0;top: 0;width: 100%;height: 100%;z-index: 150"></div>-->
  26. <!--<hr>-->
  27. <!--<h1>教育魔方-免登验证-线上环境</h1>-->
  28. <!--<p>当前页面的url:</p>-->
  29. <!--<p id="url"></p>-->
  30. <!--<br>-->
  31. <!--<p>解析url,获取的corpID:</p>-->
  32. <!--<p id="corpId"></p>-->
  33. <!--<br>-->
  34. <!--<p>SDK初始化获取的code:</p>-->
  35. <!--<p id="code"></p>-->
  36. <!--<br>-->
  37. <!--<p>请求我们服务端,登录返回的结果:</p>-->
  38. <p id="myresponse"></p>
  39. <script type="text/javascript">
  40. let login_obj = {
  41. url: '',
  42. code: '',
  43. api: ''
  44. };
  45. if (location.href.includes('.bozedu.')) {
  46. login_obj = {
  47. url: 'https://daily-cube.zjedu.com',
  48. code: 'suitemie4qeftvmhnufp1',
  49. api: 'http://jnjymf_api.bozedu.top'
  50. }
  51. } else {
  52. login_obj = {
  53. url: 'https://cube.zjedu.com',
  54. code: 'suiteecoywfohhm68lkix',
  55. api: 'http://60.188.226.44:8090'
  56. }
  57. }
  58. $(function () {
  59. var params = new Object();
  60. params = GetRequest();
  61. if (localStorage.getItem('userInfo')) {
  62. localStorage.removeItem('userInfo');
  63. }
  64. // {
  65. // var corpId = params.corpId ? params.corpId : '';
  66. // var tag = params.tag ? params.tag : '';
  67. // let follow = '';
  68. // const t = tag.split('_');
  69. // if (t.length > 1) {
  70. // tag = t.splice(0, 1)[0];
  71. // follow = t.join('/');
  72. // }
  73. // console.log(' href : ', '/app/' + tag + '/' + (follow ? ('#/' + follow) : ''))
  74. // return
  75. // }
  76. //钉钉sdk 初始化
  77. // dd.ready参数为回调函数,在环境准备就绪时触发,jsapi的调用需要保证在该回调函数触发后调用,否则无效。
  78. dd.ready(function () {
  79. var corpId = params.corpId ? params.corpId : '';
  80. var tag = params.tag ? params.tag : '';
  81. // const t = tag.split('_');
  82. // if (t.length > 1) {
  83. // tag = t.splice(0, 1)[0];
  84. // follow = t.join('/');
  85. // }
  86. // console.log(' href : ', '/app/' + tag + '/' + (follow ? ('#/' + follow) : ''))
  87. //使用SDK 获取免登授权码
  88. dd.runtime.permission.requestAuthCode({
  89. corpId: corpId,
  90. onSuccess: function (result) {
  91. var code = result.code;
  92. $.ajax({
  93. type: "POST",
  94. //TODO...下面的域名要从配置文件中获取,不写死
  95. url: login_obj.url + '/user/api/v1/login/autoLogin',
  96. contentType: "application/json;charset=utf-8",
  97. data: JSON.stringify({ code: code, accessKey: login_obj.code, corpId: corpId }),
  98. dataType: "json",
  99. success: function (response) {
  100. // $('#user_info').html('22222'+ JSON.stringify(response.data));
  101. if (response.success == false) {
  102. alert(JSON.stringify(response.msg) + JSON.stringify(response.code));
  103. } else {
  104. //TODO...开始
  105. $.ajax({
  106. type: 'POST',
  107. url: login_obj.api + '/user/main/login',
  108. // contentType: "application/json;charset=utf-8",
  109. data: {
  110. cubeinfo: JSON.stringify(response.data)
  111. },
  112. dataType: "json",
  113. success: (res) => {
  114. if (res.code == 1) {
  115. localStorage.setItem('userInfo', JSON.stringify(res.data));
  116. location.href = '/app/mobile/' + (tag ? ('#/?tag=' + tag) : '');
  117. } else {
  118. alert(res.msg);
  119. }
  120. },
  121. error: function (re) {
  122. alert("失败" + JSON.stringify(res));
  123. }
  124. })
  125. //TODO...结束
  126. }
  127. // alert("成功" + JSON.stringify(response));
  128. //成功以后将response.data的信息提交给 本地用户获取接口(开发中),初始化登录用户信息
  129. },
  130. error: function (response) {
  131. alert("失败" + JSON.stringify(response));
  132. }
  133. });
  134. },
  135. onFail: function (err) {
  136. // 调用失败时回调
  137. alert("requestAuthCode失败" + JSON.stringify(err));
  138. }
  139. });
  140. });
  141. })
  142. function GetRequest() {
  143. var url = location.search;
  144. var theRequest = new Object();
  145. if (url.indexOf("?") != -1) {
  146. var str = url.substr(1);
  147. strs = str.split("&");
  148. for (var i = 0; i < strs.length; i++) {
  149. theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
  150. }
  151. }
  152. return theRequest;
  153. }
  154. </script>
  155. </body>
  156. </html>