| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 | <!DOCTYPE html><html lang="en"><head>	<meta charset="UTF-8">	<title>首页</title>	<!-- jQuery:操作 dom、发起请求等 -->	<script src="https://lf9-cdn-tos.bytecdntp.com/cdn/expire-1-M/jquery/2.1.2/jquery.min.js" type="application/javascript"></script>	<script type="application/javascript">    /**     * 跳转单点登录     */    function ssoLogin() {      const clientId = 'yudao-sso-demo-by-code'; // 可以改写成,你的 clientId      const redirectUri = encodeURIComponent('http://127.0.0.1:18080/callback.html'); // 注意,需要使用 encodeURIComponent 编码地址      const responseType = 'code'; // 1)授权码模式,对应 code;2)简化模式,对应 token      window.location.href = 'http://127.0.0.1:1024/sso?client_id=' + clientId        + '&redirect_uri=' + redirectUri        + '&response_type=' + responseType;    }    /**     * 修改昵称     */    function updateNickname() {      const nickname = prompt("请输入新的昵称", "");      if (!nickname) {        return;      }      // 更新用户的昵称      const accessToken = localStorage.getItem('ACCESS-TOKEN');      $.ajax({        url: "http://127.0.0.1:18080/user/update?nickname=" + nickname,        method: 'PUT',        headers: {          'Authorization': 'Bearer ' + accessToken        },        success: function (result) {          if (result.code !== 0) {            alert('更新昵称失败,原因:' + result.msg)            return;          }          alert('更新昵称成功!');          $('#nicknameSpan').html(nickname);        }      });    }    /**     * 刷新令牌     */    function refreshToken() {      const refreshToken = localStorage.getItem('REFRESH-TOKEN');      if (!refreshToken) {        alert("获取不到刷新令牌");        return;      }      $.ajax({        url: "http://127.0.0.1:18080/auth/refresh-token?refreshToken=" + refreshToken,        method: 'POST',        success: function (result) {          if (result.code !== 0) {            alert('刷新访问令牌失败,原因:' + result.msg)            return;          }          alert('更新访问令牌成功!');          $('#accessTokenSpan').html(result.data.access_token);          // 设置到 localStorage 中          localStorage.setItem('ACCESS-TOKEN', result.data.access_token);          localStorage.setItem('REFRESH-TOKEN', result.data.refresh_token);        }      });    }    /**     * 登出,删除访问令牌     */    function logout() {      const accessToken = localStorage.getItem('ACCESS-TOKEN');      if (!accessToken) {        location.reload();        return;      }      $.ajax({        url: "http://127.0.0.1:18080/auth/logout",        method: 'POST',        headers: {          'Authorization': 'Bearer ' + accessToken        },        success: function (result) {          if (result.code !== 0) {            alert('退出登录失败,原因:' + result.msg)            return;          }          alert('退出登录成功!');          // 删除 localStorage 中          localStorage.removeItem('ACCESS-TOKEN');          localStorage.removeItem('REFRESH-TOKEN');          location.reload();        }      });    }    $(function () {      const accessToken = localStorage.getItem('ACCESS-TOKEN');      // 情况一:未登录      if (!accessToken) {        $('#noLoginDiv').css("display", "block");        return;      }      // 情况二:已登录      $('#yesLoginDiv').css("display", "block");      $('#accessTokenSpan').html(accessToken);      // 获得登录用户的信息      $.ajax({        url: "http://127.0.0.1:18080/user/get",        method: 'GET',        headers: {          'Authorization': 'Bearer ' + accessToken        },        success: function (result) {          if (result.code !== 0) {            alert('获得个人信息失败,原因:' + result.msg)            return;          }          $('#nicknameSpan').html(result.data.nickname);        }      });    })	</script></head><body><!-- 情况一:未登录:1)跳转 ruoyi-vue-pro 的 SSO 登录页 --><div id="noLoginDiv" style="display: none">	您未登录,点击 <a href="#" onclick="ssoLogin()">跳转 </a> SSO 单点登录</div><!-- 情况二:已登录:1)展示用户信息;2)刷新访问令牌;3)退出登录 --><div id="yesLoginDiv" style="display: none">	您已登录!<button onclick="logout()">退出登录</button> <br />	昵称:<span id="nicknameSpan"> 加载中... </span> <button onclick="updateNickname()">修改昵称</button> <br />	访问令牌:<span id="accessTokenSpan"> 加载中... </span> <button onclick="refreshToken()">刷新令牌</button> <br /></div></body><style>    body { /** 页面居中 */        border-radius: 20px;        height: 350px;        position: absolute;        left: 50%;        top: 50%;        transform: translate(-50%,-50%);    }</style></html>
 |