callback.html 1.93 KB
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>SSO 授权后的回调页</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 ($) {
      /**
       * 获得 URL 的指定参数的值
       *
       * @param name 参数名
       * @returns 参数值
       */
      $.getUrlParam = function (name) {
        const reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
        const r = window.location.search.substr(1).match(reg);
        if (r != null) return unescape(r[2]); return null;
      }
    })(jQuery);
	</script>

	<script type="application/javascript">
    $(function () {
      // 获得 code 授权码
      const code = $.getUrlParam('code');
      if (!code) {
        alert('获取不到 code 参数,请排查!')
        return;
      }

      // 提交
      const redirectUri = 'http://127.0.0.1:18080/callback.html'; // 需要修改成,你回调的地址,就是在 index.html 拼接的 redirectUri
      $.ajax({
        url:  "http://127.0.0.1:18080/auth/login-by-code?code=" + code
          + '&redirectUri=' + redirectUri,
        method: 'POST',
        success: function( result ) {
          if (result.code !== 0) {
            alert('获得访问令牌失败,原因:' + result.msg)
            return;
          }
          alert('获得访问令牌成功!点击确认,跳转回首页')

          // 设置到 localStorage 中
          localStorage.setItem('ACCESS-TOKEN', result.data.access_token);
          localStorage.setItem('REFRESH-TOKEN', result.data.refresh_token);

          // 跳转回首页
          window.location.href = '/index.html';
        }
      })
    })
	</script>
</head>
<body>
正在使用 code 授权码,进行 accessToken 访问令牌的获取
</body>
</html>