WebOS单点登录(SSO)
文汇百川WebOS平台支持简便、快捷、安全的单点登录功能。通过配置应用地址中的变量,用户点击应用后即可自动完成身份认证并跳转到目标系统,实现免登录访问第三方应用。
回调接口示例:https://{domain}.finalos.cn/interface/sso/user?token={userToken}
整体流程
2 用户点击应用后,系统经过一系列处理后,携带参数跳转到目标系统
3 目标系统拿到参数进行处理,如果配置的是 userToken 参数,需要回调平台获取用户的信息
4 目标系统通过回调用平台接口,获取用户的基本信息后,完成后续操作
配置应用
平台支持简便、快捷、安全的单点登录功能,方式如下:
- 在应用的【地址】中,配置一个变量 {userToken},比如:https://系统域名/sso?token={userToken}
- 当用户点击这个图标时,系统会自动完成变量替换并跳转,比如将上述地址替换为:https://系统域名/sso?token=1234567890
- 跳转目标系统在获取参数后只需要回调接口即可解析用户信息
- 这个 sso token 有效期为五分钟,且只能被消费一次
URL 中支持的参数
| 参数 | 值解释 | 用途 |
|---|
userToken | sso校验令牌 | 用于安全的单点登录 |
userId | 用户在平台中的ID | 一个用户的平台ID是唯一的,同一个用户加入多个空间,其id不变 |
userCode | 每个空间自定义的用户唯一标识符 | 可以用作身份校验,和自建系统打通 |
userName | 每个空间自定义的用户名 | 用于需要获取用户名的场景 |
_dc | 时间戳,值为1970年1月1日以来的毫秒数 | 通过改变url可以让浏览器认为这是一个新的地址,进而避免缓存 |
配置说明:上述参数均可以通过以 {参数名} 的方式进行配置,比如:
https://系统域名/home?usertoken={userToken}&id={userId}&username={userName}&code={userCode}&time={_dc}
注意:只有旗舰版支持 userToken 参数。
建立应用
在系统桌面中,点击左下角【开始】按钮,展开开始菜单后选择【设置】,进入设置面板后再点击【应用】标签页,即可进入应用管理界面查看和编辑应用列表。

配置链接
在应用管理界面中,新建或者编辑应用,打开编辑表单。在【地址】字段中填入带有 SSO 变量的目标系统链接,例如:
URL https://系统域名/home?usertoken={userToken}&id={userId}&username={userName}&code={userCode}&time={_dc}
填写完成后点击【保存】,用户点击该应用图标时系统即会自动完成变量替换并跳转。

回调查询
系统支持 GET、POST、路径传参三种方式。
调用地址:当前系统的域名 /interface/sso/user?token={userToken}
调用地址:当前系统的域名 /interface/sso/user
Body 传参:
JSON { "token": "userToken" }
调用地址:当前系统的域名 /interface/sso/user/{userToken}
返回结果
返回 JSON 数据,code 为数字 0 表示正确,其他数值表示错误。当 code 为 0 时解析 data 节点对象即可。
正常响应示例
JSON { "code": 0, "msg": "success", "data": { "appId": "应用id,数字类型", "appCode": "应用编码", "appName": "应用名称", "userId": "用户ID,如M123456", "userCode": "用户编码", "userName": "用户名", "realName": "真实姓名", "nickname": "昵称", "osId": "系统编码,如S123456", "domain": "系统域名,接口调用的域名" } }
错误响应示例
JSON { "code": 100, "msg": "not found" }
提示:请调用当前系统的域名(自定义域名或者系统ID的域名均可)。上面的参数中,可以通过修改成员信息、应用信息进行调整。
单点登录历史
如果回调查询成功,会记录单点登录历史,可以在系统管理中的【单点】页面查看。