# 免登录查看

正常情况下流程表单的查看页、打印页以及导出功能都需要用户鉴权,当用户对流程实例有管理查看权限时候才可以查看(打印、导出)。

在某些情况下,流程的数据需要在不鉴权的情况下也能查看(打印、导出),比如在一些Mis系统中查看流程表单数据,而查看人并非流程的管理员。

平台提供了免登录查看功能,在url中提供viewToken的情况下,可以跳过鉴权步骤,直接查看流程表单数据。viewToken每个流程实例不同,在流程发起时由流程平台随机产生,建议业务系统通过Messenger在其自身数据库中记录保存。

# 访问路径

# 永久有效地址

渲染页:https://form.sjtu.edu.cn/infoplus/form/{id}/render/{viewToken}

打印页:https://form.sjtu.edu.cn/infoplus/form/{id}/print/{viewToken}

导出: https://form.sjtu.edu.cn/infoplus/form/{id}/{viewToken}/export.{format}

# 指定时间内有效的地址

渲染页:https://form.sjtu.edu.cn/infoplus/form/{id}/render/{hash}?expire={timestamp}

打印页:https://form.sjtu.edu.cn/infoplus/form/{id}/print/{hash}?expire={timestamp}

导出: https://form.sjtu.edu.cn/infoplus/form/{id}/{hash}/export.{format}?expire={timestamp}

# 参数说明

id可以是e{流水号},也可以是GUID形式的流程实例id

viewToken就是免登录查看的token

timestamp为地址有效期结束时间,以秒为单位的unix时间戳

hash为md5(流程实例id|viewToken|timestamp),其中流程实例id为路径中的id

# Token获取

# messenger中获取

在messenger中可以通过InfoPlusEvent对象来获取token,获取后可以记录在业务系统数据库中。

    @Override
    public InfoPlusResponse onInstanceStarting(InfoPlusEvent e) {
        String token = e.getStep().getInstance().getToken();
        ...
    }
1
2
3
4
5

# 绑定库中获取

可以通过绑定库中的META_ENTRY表获取指定流水号的token,流水号在_entry字段中,viewToken在_token字段中