index.html 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>Sa-Sso-Pro Client 端 - 前后端分离对接演示</title>
  6. <style type="text/css">
  7. body{/* background-color: #A7D2CA; */}
  8. *{margin: 0px; padding: 0px;}
  9. .login-box{max-width: 1000px; text-align: center; margin: 30px auto; padding: 1em;}
  10. .login-info, .un-login-info{line-height: 40px; display: none;}
  11. .logo-box img{width: 220px; height: 220px;}
  12. p{color: #666;}
  13. .green{color: green;}
  14. .red{color: red;}
  15. a{text-decoration: none; margin-right: 10px; line-height: 20px; display: inline-block; border-bottom: 1px solid #FFF;}
  16. a:hover{border-bottom: 1px solid blue;}
  17. h3{margin-top: 20px; margin-bottom: 0px; color: #000;}
  18. /* loading框样式 */
  19. .ajax-layer-load.layui-layer-dialog{min-width: 0px !important; background-color: rgba(0,0,0,0.85);}
  20. .ajax-layer-load.layui-layer-dialog .layui-layer-content{padding: 10px 20px 10px 40px; color: #FFF;}
  21. .ajax-layer-load.layui-layer-dialog .layui-layer-content .layui-layer-ico{width: 20px; height: 20px; background-size: 20px 20px; top: 12px; }
  22. </style>
  23. </head>
  24. <body>
  25. <div class="login-box">
  26. <div class="logo-box">
  27. <img src="https://sa-token.cc/logo.png" alt="logo">
  28. </div>
  29. <br>
  30. <h2>Sa-Sso-Pro Client 端 - 前后端分离对接演示</h2> <br>
  31. <p>当前系统:<span class="client-domain"></span></p> <br>
  32. <!-- ---------- 已登录视图 ---------- -->
  33. <div class="login-info">
  34. <h3>账号状态</h3>
  35. <p>
  36. <b class="green">已登录</b>
  37. <span>账号id=<t class="user-id"></t></span>,
  38. <span>昵称=<t class="user-username"></t></span>,
  39. <span>年龄=<t class="user-age"></t></span>,
  40. <span>登录次数=<t class="user-loginCount"></t></span>
  41. )
  42. </p>
  43. <h3>相关操作</h3>
  44. <p>
  45. <a href="javascript:location.href=baseUrl + '/sso/logout?satoken=' + localStorage.satoken + '&back=' + encodeURIComponent(location.href);">跳页面注销</a>
  46. <a href="javascript:logout();">使用Ajax调用API注销</a>
  47. </p>
  48. </div>
  49. <!-- ---------- 未登录视图 ---------- -->
  50. <div class="un-login-info">
  51. <h3>账号状态</h3>
  52. <p>
  53. <b class="red">未登录</b>
  54. </p>
  55. <h3>相关操作</h3>
  56. <p>
  57. <a href="javascript:location.href='sso-login.html?back=' + encodeURIComponent(location.href);">直接登录</a>
  58. <a href="javascript:getCurrInfo();">使用Ajax调用API触发登录</a>
  59. </p>
  60. </div>
  61. <div style="height: 200px;"></div>
  62. </div>
  63. <script src="https://unpkg.zhimg.com/jquery@3.4.1/dist/jquery.min.js"></script>
  64. <script src="https://www.layuicdn.com/layer-v3.1.1/layer.js"></script>
  65. <script>window.jQuery || alert('当前页面CDN服务商已宕机,请将所有js包更换为本地依赖')</script>
  66. <script src="base-util.js"></script>
  67. <script type="text/javascript">
  68. // 显示当前系统域名
  69. $('.client-domain').html(location.protocol + "//" + location.host);
  70. // 查询当前会话是否登录
  71. function loadinfo() {
  72. sa.ajax('/getCurrInfo', {}, function(res) {
  73. if(res.code == 200) {
  74. $('.login-info').show();
  75. $('.un-login-info').hide();
  76. $('.user-id').text(res.data.id);
  77. $('.user-username').text(res.data.username);
  78. $('.user-age').text(res.data.age);
  79. $('.user-loginCount').text(res.data.loginCount);
  80. } else if(res.code == 401){
  81. $('.login-info').hide();
  82. $('.un-login-info').show();
  83. } else {
  84. layer.alert(res.msg, {icon: 2 });
  85. }
  86. })
  87. }
  88. $(function() {
  89. loadinfo();
  90. })
  91. // 调用API触发登录
  92. function getCurrInfo() {
  93. sa.ajax('/getCurrInfo', {}, function(res) {
  94. // 根据返回的状态码执行不同动作
  95. if(res.code == 200) {
  96. layer.alert(res.msg);
  97. } else if (res.code == 401){
  98. layer.confirm('该数据仅对登录用户开放,现在就去登录?', function() {
  99. location.href = 'sso-login.html?back=' + encodeURIComponent(location.href);
  100. });
  101. } else {
  102. layer.alert(res.msg);
  103. }
  104. });
  105. }
  106. // 调用API进行注销
  107. function logout() {
  108. sa.ajax('/sso/logout', {}, function(res) {
  109. // 根据返回的状态码执行不同动作
  110. if(res.code == 200) {
  111. layer.msg('注销成功');
  112. setTimeout(function() {
  113. location.reload(true);
  114. }, 800);
  115. } else {
  116. layer.alert(res.msg);
  117. }
  118. });
  119. }
  120. </script>
  121. </body>
  122. </html>