第三方使用token打开指定的页面
第三方要打开租户ent1中demo应用中的订单页面,通过token直接打开功能页的格式如下:
桌面端的页面:
https://entryent14-vip.c.xcaas.net/entry/pcapp?token=XXXXXXXX#!(/demo/mobileapp/mobile/orderm.w)
企业桌面端的页面:
https://entryent14-vip.c.xcaas.net/entry/pcapp/v_/pc/index.w?token=XXXXXXXX#!($model/UI2/pc/pcx.w)//({"src":"/demo/mobileapp/mobile/pcx/orderm.w"})
移动端的页面:
https://entryent14-vip.c.xcaas.net/entry/mobileapp/?standalone=true&token=XXXXXXXX#/demo/mobileapp/mobile/orderm
需要注意的是打开的页面上要放用户组件
如果是在已登录的企业门户中查看token:
https://entryent14-vip.c.xcaas.net/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.运行监控中打开tomcat的终端
3.执行如下命令获取CREDENTIAL_TOKEN的值
cat /usr/local/x5/conf/env.sh |grep CREDENTIAL_TOKEN
4.通过CREDENTIAL_TOKEN的值就可以获取到token
需要注意第三方调用这个api去获取token时要进行安全验证或者权限控制,否则就相当于把密码泄露出去了
拼接url时需要注意token的值中可能有中文,因此在拼接url的时候要encodeURIComponent对token的值进行编码