第三方使用token打开指定的页面
第三方集成时需要不通过登录页登录就直接打开页面的方式可以使用token参数的方式实现
token参数的方式格式要求:
1、以门户域名/login/token=XXX方式开头
2、使用redirectUrl参数控制要跳转打开的页面
打开页面是可以带门户也可以不带门户,带门户就是同从登录页登录打开功能页一样可以操作门户,带门户和不带门户的url区别是redirectUrl的参数值不一样,如下打开demo应用的订单页面
不带门户的redirectUrl的参数值如下:
桌面端/demo/pcxapp/#/demo/pcxapp/pcx/order
移动端/demo/mobileapp/#/demo/mobileapp/mobile/order
“#”前面的是:应用服务名/具体端的标识
“#”后面的是:应用服务名/具体端的标识/页面在UI2下的完整路径
带门户的redirectUrl的参数值用通过门户访问功能后门户域名后面的url串把mobilepp/mobile改为具体端的写法即可
需要注意的是要对token和redirectUrl参数值用encodeURIComponent编码
具体案例如下,打开租户ent1中demo应用中的订单页面,
1.不带门户
2. 移动端页面
## 2.带门户
1. 桌面端页面:
原始的门户url:
使用token打开的url:
2. 移动端页面:
原始的门户url:
使用token打开的url:
## token的获取方式如下:
1. 如果是在已登录的企业门户中查看token:
https://entryent14-vip.trunk.com/uaa/userinfo?type=token ```
- 如果是第三方在只有用户名的情况下获取token,需要通过API获取:
获取token的方式API如下: /uaa/sso/token post 请求 参数{expire:限制可用时长(单位是秒),username:"zhangsan",credentialToken: 应用中的环境变量CREDENTIAL_TOKEN}
expire参数可以不设置,不设置token就是长久有效的,如设置30就是获取后30秒内可用,超过30秒就不能登录的
credentialToken参数的值是应用中CREDENTIAL_TOKEN这个环境变量的值,这个值可以自己在应用中定义一个api去获取就是java中标准的获取环境变量的方式
目前CREDENTIAL_TOKEN环境变量需要自己配置,如果是在门户entry中就配置到entry中,在自己的应用中获取就配置到自己的应用中,配置文件的路径为:model/service/main/deploy下的xml文件
CREDENTIAL_TOKEN环境变量的值通过下面的方式查找
1.租户管理员登录,应用/服务管理中找到企业门户(entry应用),打开监控
2.切换到POD终端打开tomcat容器
3.执行如下命令获取CREDENTIAL_TOKEN的值
cat /usr/local/x5/conf/env.sh |grep CREDENTIAL_TOKEN
4.通过CREDENTIAL_TOKEN的值就可以获取到token
需要注意第三方调用这个api去获取token时要进行安全验证或者权限控制,否则就相当于把密码泄露出去了