index.html 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>首页</title>
  6. <!-- jQuery:操作 dom、发起请求等 -->
  7. <script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/2.1.2/jquery.min.js" type="application/javascript"></script>
  8. <script type="application/javascript">
  9. /**
  10. * 跳转单点登录
  11. */
  12. function ssoLogin() {
  13. const clientId = 'yudao-sso-demo-by-code'; // 可以改写成,你的 clientId
  14. const redirectUri = encodeURIComponent('http://127.0.0.1:18080/callback.html'); // 注意,需要使用 encodeURIComponent 编码地址
  15. const responseType = 'code'; // 1)授权码模式,对应 code;2)简化模式,对应 token
  16. window.location.href = 'http://127.0.0.1:1024/sso?client_id=' + clientId
  17. + '&redirect_uri=' + redirectUri
  18. + '&response_type=' + responseType;
  19. }
  20. /**
  21. * 修改昵称
  22. */
  23. function updateNickname() {
  24. const nickname = prompt("请输入新的昵称", "");
  25. if (!nickname) {
  26. return;
  27. }
  28. // 更新用户的昵称
  29. const accessToken = localStorage.getItem('ACCESS-TOKEN');
  30. $.ajax({
  31. url: "http://127.0.0.1:18080/user/update?nickname=" + nickname,
  32. method: 'PUT',
  33. headers: {
  34. 'Authentication': 'Bearer ' + accessToken
  35. },
  36. success: function (result) {
  37. if (result.code !== 0) {
  38. alert('更新昵称失败,原因:' + result.msg)
  39. return;
  40. }
  41. alert('更新昵称成功!');
  42. $('#nicknameSpan').html(nickname);
  43. }
  44. });
  45. }
  46. $(function () {
  47. const accessToken = localStorage.getItem('ACCESS-TOKEN');
  48. // 情况一:未登录
  49. if (!accessToken) {
  50. $('#noLoginDiv').css("display", "block");
  51. return;
  52. }
  53. // 情况二:已登录
  54. $('#yesLoginDiv').css("display", "block");
  55. $('#accessTokenSpan').html(accessToken);
  56. // 获得登录用户的信息
  57. $.ajax({
  58. url: "http://127.0.0.1:18080/user/get",
  59. method: 'GET',
  60. headers: {
  61. 'Authentication': 'Bearer ' + accessToken
  62. },
  63. success: function (result) {
  64. if (result.code !== 0) {
  65. alert('获得个人信息失败,原因:' + result.msg)
  66. return;
  67. }
  68. $('#nicknameSpan').html(result.data.nickname);
  69. }
  70. });
  71. })
  72. </script>
  73. </head>
  74. <body>
  75. <!-- 情况一:未登录:1)跳转 ruoyi-vue-pro 的 SSO 登录页 -->
  76. <div id="noLoginDiv" style="display: none">
  77. 您未登录,点击 <a href="#" onclick="ssoLogin()">跳转 </a> SSO 单点登录
  78. </div>
  79. <!-- 情况二:已登录:1)展示用户信息;2)刷新访问令牌;3)退出登录 -->
  80. <div id="yesLoginDiv" style="display: none">
  81. 您已登录!<button>退出登录</button> <br />
  82. 昵称:<span id="nicknameSpan"> 加载中... </span> <button onclick="updateNickname()">修改昵称</button> <br />
  83. 访问令牌:<span id="accessTokenSpan"> 加载中... </span> <br />
  84. </div>
  85. </body>
  86. <style>
  87. body { /** 页面居中 */
  88. border-radius: 20px;
  89. height: 350px;
  90. position: absolute;
  91. left: 50%;
  92. top: 50%;
  93. transform: translate(-50%,-50%);
  94. }
  95. </style>
  96. </html>