1、后台接入操作
假设轻应用单点登录地址为:http://www.baidu.com/home/login.html
1.1、添加轻应用
管理员登录后台,在轻应用管理处新建轻应用
填写轻应用相关信息
注:红色*号为必填项
**应用logo** (大小超过1M推荐上传图片尺寸为640*640)
**应用名称** 6个字以内
**应用描述** 20字以内
**首页地址** 单点登录地址,具体填写参照内外网接入填写方式
**反代理路径** 虚拟目录名称,具体填写参照内外网接入填写方式
**后台地址、PC版首页地址** 如果没有则无需填写
**可见范围** 分配轻应用可见范围(和权限相关)
1.2、外网接入填写方式
如果轻应用可以通过外网地址访问的情况下,则:
“首页地址”,填写系统绝对路径,如:“http://www.baidu.com/home/login.html”
“反代理路径”,禁止填写任何内容
1.3、内网接入填写方式
如果轻应用不能通过外网访问方式的情况下,则:
“首页地址”,填写系统相对路径,以“/”开头,如:“/home/login.html”
“反代理路径”,以字母开头,不能使用任何符号,最好采用系统的英文名命名,如:“baidu”
2、技术接入操作
2.1、获取单点登录token
当在统一门户app内进入轻应用时,系统会自动在单点登录地址后面追加token字符串(如:/home/login.html?token=xxxxxx)
token用于获取当前登录用户的工号
2.1.1、前端方式
方式一:
函数定义:
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null;
}
函数调用:
var token = getQueryString('token');
方式二:
var token = /token=(.*?)($|&)/.exec(window.location.href)[1];
2.1.2、后台方式
JavaWeb
request.getParameter("token");
Asp.Net
Request["token"];
PHP
$_GET['token'];
2.2、获取当前登录用户工号
接口地址:
/api/User/GetUserID
接口头部Header参数:
token:单点登录获取到的token
caller:调用者,轻应用ID(轻应用在后台添加后即可查看该应用ID)
接口返回:
正确情况:
{
"code":0,
"msg":"OK",
"data":"15000015"
}
错误情况:
{
"code": 10001,
"msg": "参数有误,请检查接口传递参数。"
}
返回字段说明:
code:返回结果代码,0为正确
msg:返回文本提示
data:正确情况下返回员工工号,错误情况下没有此字段
2.3、二级虚拟目录的配置(仅针对于内网接入方式)
因为外网地址有且只有一个访问端口,因此为了使不同的系统能够通过一个端口正常访问,故此采用不同的二级目录来对其系统进行访问。
/baidu/login.html
/sogou/login.html
/google/login.html
如系统内网单点登录地址为:http://10.10.10.10/home/login.html,在后台添加轻应用后经过反向代理,外网访问地址为:http://外网HOST/虚拟目录/home/login.html
通过不同的二级目录来访问不同的系统,因此二级目录对于轻应用而言,此目录必须是唯一的。
不同webserver的二级虚拟目录配置方式如下:
Apache
IIS
Nginx
注意:
系统单点登录地址无论是否已经在二级目录下,此操作务必进行,否则会出现部分脚本或样式无法加载(/css、/js)
附录:
见内部文档