login.html 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <!DOCTYPE html>
  2. <html lang="zh_CN">
  3. <head>
  4. <title>账户登录 - U企云服</title>
  5. <style>
  6. body {
  7. margin: 0;
  8. }
  9. iframe {
  10. border: 0;
  11. }
  12. </style>
  13. <script src="./lib/sockjs.min.js"></script>
  14. <script src="./lib/stomp.min.js"></script>
  15. <script>
  16. var Socket = (function(){
  17. return {
  18. subscribe: function(clientId, dest) {
  19. return new Promise((resolve, reject) => {
  20. const socket = new SockJS('https://saas-api.usoftchina.com/ws');
  21. stompClient = Stomp.over(socket);
  22. stompClient.connect({}, function (frame) {
  23. stompClient.subscribe('/clients/' + clientId + dest, function (message) {
  24. stompClient.disconnect(function () {
  25. resolve(JSON.parse(message.body));
  26. });
  27. });
  28. });
  29. })
  30. },
  31. disconnect: function(resolve) {
  32. if (stompClient) {
  33. stompClient.disconnect(resolve);
  34. } else {
  35. resolve();
  36. }
  37. }
  38. }
  39. })();
  40. </script>
  41. </head>
  42. <body>
  43. <script>
  44. const ipc = require('electron').ipcRenderer;
  45. var clientId = Math.random().toString(36).substr(2);
  46. Socket.subscribe(clientId, '/sso/callback').then(function(data){
  47. var session = data.token, account = data.account;
  48. account.companies = account.companies || [];
  49. session.account = account;
  50. ipc.send('session.change', session);
  51. });
  52. var frame = document.createElement("iframe");
  53. frame.setAttribute("src", "https://sso.ubtob.com/sassLogin?appId=sp&baseUrl=" +
  54. encodeURIComponent('https://saas-api.usoftchina.com/api/auth/sso/callback/' + clientId));
  55. frame.setAttribute("width", "430");
  56. frame.setAttribute("height", "504");
  57. document.body.appendChild(frame);
  58. </script>
  59. </body>
  60. </html>