mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-11-24 08:33:04 +08:00
feat(sso): 新增 sso-server 前后端分离模式下 平台中心模式 demo 示例
This commit is contained in:
@@ -0,0 +1,40 @@
|
|||||||
|
// 服务端地址
|
||||||
|
var baseUrl = "http://sa-sso-server.com:9000";
|
||||||
|
|
||||||
|
// sa
|
||||||
|
var sa = {};
|
||||||
|
|
||||||
|
// 打开loading
|
||||||
|
sa.loading = function(msg) {
|
||||||
|
layer.closeAll(); // 开始前先把所有弹窗关了
|
||||||
|
return layer.msg(msg, {icon: 16, shade: 0.3, time: 1000 * 20, skin: 'ajax-layer-load'});
|
||||||
|
};
|
||||||
|
|
||||||
|
// 隐藏loading
|
||||||
|
sa.hideLoading = function() {
|
||||||
|
layer.closeAll();
|
||||||
|
};
|
||||||
|
|
||||||
|
// 封装一下Ajax
|
||||||
|
sa.ajax = function(url, data, successFn) {
|
||||||
|
$.ajax({
|
||||||
|
url: baseUrl + url,
|
||||||
|
type: "post",
|
||||||
|
data: data,
|
||||||
|
dataType: 'json',
|
||||||
|
headers: {
|
||||||
|
'X-Requested-With': 'XMLHttpRequest',
|
||||||
|
'satoken': localStorage.getItem('satoken')
|
||||||
|
},
|
||||||
|
success: function(res){
|
||||||
|
console.log('返回数据:', res);
|
||||||
|
successFn(res);
|
||||||
|
},
|
||||||
|
error: function(xhr, type, errorThrown){
|
||||||
|
if(xhr.status == 0){
|
||||||
|
return alert('无法连接到服务器,请检查网络');
|
||||||
|
}
|
||||||
|
return alert("异常:" + JSON.stringify(xhr));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>SSO-Server 平台首页</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h2>SSO-Server 平台首页 (前后端分离模式) (平台中心模式)</h2>
|
||||||
|
<p>
|
||||||
|
<a href='sso-auth.html?client=sso-client3&redirect=http://sa-sso-client1.com:9003/sso/login?back=http://sa-sso-client1.com:9003/'
|
||||||
|
target='_blank'> 进入Client1系统 </a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a href='sso-auth.html?client=sso-client3&redirect=http://sa-sso-client2.com:9003/sso/login?back=http://sa-sso-client2.com:9003/'
|
||||||
|
target='_blank'> 进入Client2系统 </a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a href='sso-auth.html?client=sso-client3&redirect=http://sa-sso-client3.com:9003/sso/login?back=http://sa-sso-client3.com:9003/'
|
||||||
|
target='_blank'> 进入Client3系统 </a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<!-- scripts -->
|
||||||
|
<script src="https://unpkg.com/jquery@3.4.1/dist/jquery.min.js"></script>
|
||||||
|
<script src="https://www.layuicdn.com/layer-v3.1.1/layer.js"></script>
|
||||||
|
<script src="./common.js"></script>
|
||||||
|
<script>
|
||||||
|
sa.ajax("/sso/isLogin", {}, function(res) {
|
||||||
|
if(res.data) {
|
||||||
|
// 已登录...
|
||||||
|
console.log('已登录,开始操作...');
|
||||||
|
} else {
|
||||||
|
layer.msg('未登录,请先登录...')
|
||||||
|
setTimeout(function(){
|
||||||
|
location.href = './sso-auth.html';
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -4,7 +4,7 @@
|
|||||||
<title>Sa-SSO-Server 认证中心-登录</title>
|
<title>Sa-SSO-Server 认证中心-登录</title>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||||
<link rel="stylesheet" href="./login.css">
|
<link rel="stylesheet" href="./sso-auth.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="view-box">
|
<div class="view-box">
|
||||||
@@ -35,9 +35,10 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- scripts -->
|
<!-- scripts -->
|
||||||
<script src="https://unpkg.zhimg.com/jquery@3.4.1/dist/jquery.min.js"></script>
|
<script src="https://unpkg.com/jquery@3.4.1/dist/jquery.min.js"></script>
|
||||||
<script src="https://www.layuicdn.com/layer-v3.1.1/layer.js"></script>
|
<script src="https://www.layuicdn.com/layer-v3.1.1/layer.js"></script>
|
||||||
<script src="./login.js"></script>
|
<script src="./common.js"></script>
|
||||||
|
<script src="./sso-auth.js"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,43 +1,3 @@
|
|||||||
// 服务端地址
|
|
||||||
var baseUrl = "http://sa-sso-server.com:9000";
|
|
||||||
|
|
||||||
// sa
|
|
||||||
var sa = {};
|
|
||||||
|
|
||||||
// 打开loading
|
|
||||||
sa.loading = function(msg) {
|
|
||||||
layer.closeAll(); // 开始前先把所有弹窗关了
|
|
||||||
return layer.msg(msg, {icon: 16, shade: 0.3, time: 1000 * 20, skin: 'ajax-layer-load'});
|
|
||||||
};
|
|
||||||
|
|
||||||
// 隐藏loading
|
|
||||||
sa.hideLoading = function() {
|
|
||||||
layer.closeAll();
|
|
||||||
};
|
|
||||||
|
|
||||||
// 封装一下Ajax
|
|
||||||
sa.ajax = function(url, data, successFn) {
|
|
||||||
$.ajax({
|
|
||||||
url: baseUrl + url,
|
|
||||||
type: "post",
|
|
||||||
data: data,
|
|
||||||
dataType: 'json',
|
|
||||||
headers: {
|
|
||||||
'X-Requested-With': 'XMLHttpRequest',
|
|
||||||
'satoken': localStorage.getItem('satoken')
|
|
||||||
},
|
|
||||||
success: function(res){
|
|
||||||
console.log('返回数据:', res);
|
|
||||||
successFn(res);
|
|
||||||
},
|
|
||||||
error: function(xhr, type, errorThrown){
|
|
||||||
if(xhr.status == 0){
|
|
||||||
return alert('无法连接到服务器,请检查网络');
|
|
||||||
}
|
|
||||||
return alert("异常:" + JSON.stringify(xhr));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------- 相关事件 -----------------------------------
|
// ----------------------------------- 相关事件 -----------------------------------
|
||||||
|
|
||||||
@@ -47,6 +7,8 @@ var pData = {
|
|||||||
redirect: getParam('redirect', ''),
|
redirect: getParam('redirect', ''),
|
||||||
mode: getParam('mode', '')
|
mode: getParam('mode', '')
|
||||||
};
|
};
|
||||||
|
// 提供 redirect 参数时,登录后往 redirect 跳转
|
||||||
|
if(pData.redirect) {
|
||||||
sa.ajax("/sso/getRedirectUrl", pData, function(res) {
|
sa.ajax("/sso/getRedirectUrl", pData, function(res) {
|
||||||
if(res.code == 200) {
|
if(res.code == 200) {
|
||||||
// 已登录,并且redirect地址有效,开始跳转
|
// 已登录,并且redirect地址有效,开始跳转
|
||||||
@@ -57,6 +19,17 @@ sa.ajax("/sso/getRedirectUrl", pData, function(res) {
|
|||||||
layer.alert(res.msg);
|
layer.alert(res.msg);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
} else {
|
||||||
|
// 未提供 redirect 参数时,登录后往 home 跳转
|
||||||
|
sa.ajax("/sso/isLogin", {}, function(res) {
|
||||||
|
if(res.data) {
|
||||||
|
location.href = './home.html';
|
||||||
|
} else {
|
||||||
|
console.log('未登录,请先登录...');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// 登录
|
// 登录
|
||||||
$('.login-btn').click(function(){
|
$('.login-btn').click(function(){
|
||||||
@@ -17,6 +17,14 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@RestController
|
@RestController
|
||||||
public class H5Controller {
|
public class H5Controller {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 返回当前是否已经登录
|
||||||
|
*/
|
||||||
|
@RequestMapping("/sso/isLogin")
|
||||||
|
public SaResult isLogin() {
|
||||||
|
return SaResult.data(StpUtil.isLogin());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取 redirectUrl
|
* 获取 redirectUrl
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user