单页面嵌入

### 嵌入报表 #

与单点登录类似, 单点登录用于直接登录到平台访问报表 但对于只嵌入报表, 用此方法更合适(需升级到5.3.11以上)

    嵌入的url: '/echart/?type={reportName}&visitor={visitor}&token={token}&stamp={stamp}'
    参数说明：
    reportName： 报表名或报表ID
    visitor: 用户名（在smartchart平台中管理）
    stamp: 时间戳(1970年1月1日到生成时间的毫秒数)
    token: 采用sha1加密, token=SHA1(链接秘钥+stamp+visitor+reportName)

用户名和秘钥设定参考 数据服务API的config文件

同时你需要将visitor加入到对应的报表权限查看访问

### python样列 #

以下为python版的url生成样列，你可以转化成你对应的开发语言

    import time
    import hashlib
    import os

    SMART_CHART_URL = 'http://127.0.0.1:8000'
    reportID = '报表ID'
    LOGIN_URL = SMART_CHART_URL + '/echart/?type={reportID}&visitor={visitor}&token={token}&stamp={stamp}'
    TOKEN = 链接秘钥

    def get_smarturl(username, reportName):
        stamp = int(time.time() * 1000)
        visitor = username
        res = TOKEN + str(stamp) + visitor + reportID
        token = hashlib.sha1(res.encode('utf-8')).hexdigest()
        VISIT_DICT = {
            "visitor": id,
            "stamp": stamp,
            "token": token,
            "reportID": reportName
        }

        # 拼接好的url,直接访问
        visit_url = LOGIN_URL.format(** VISIT_DICT)
        return visit_url

### 数据权限加密方法 #

    如果你需要对用户进行一些数据权限控制, 可以避免用户越权访问
    可以通过传入参数"id", 如/echart/?type=xxx&visitor=xx&token=xx&stamp=xxxxx&id=xxx
    后台会把这个id转化为参数名"_id"给对应的查询来进行数据权限控制
    加密参数需把id加入, 例如id=john
    那么 token=SHA1(链接秘钥+stamp+visitor+reportName+id)

### 全参数加密方法 #

    如果需要将参数也加入认证中, 为保持兼容性, 我们把param这个参数改为params(具体参考参数文档中param的写法)
    '/echart/?type={reportName}&visitor={visitor}&token={token}&stamp={stamp}&params=xxxx'
    加密参数把params加入, 例如params为 {"a":"1","b":2"}
    res = TOKEN + str(stamp) + visitor + reportName + '{"a":"1","b":2"}'